AngularJS ng内单击ng-repeat

瑞安

我正在尝试在下拉菜单中加载可点击的新闻提要URL列表。当我在视图中使用固定地址时,它工作正常,但是当我使用控制器填充地址时,下拉菜单很好,但是ng-click不能按预期工作。

这是工作版本的jsfiddle:http : //jsfiddle.net/mahbub/b8Wcz/

此代码有效:

 <ul class="dropdown-menu">
     <li><a href="#" ng-click="feedSrc='http://www.abc.net.au/news/feed/45910/rss.xml';loadFeed($event)">ABC News</a>
     </li>
     <li><a href="#" ng-click="feedSrc='http://rss.cnn.com/rss/cnn_topstories.rss';loadFeed($event);">CNN</a>
     </li>
 </ul>

控制器代码:

var App = angular.module('RSSFeedApp', []);

App.controller("FeedCtrl", ['$scope', 'FeedService', function ($scope, Feed) {
    $scope.loadButonText = "Select news channel";
    $scope.loadFeed = function (e) {
        Feed.parseFeed($scope.feedSrc).then(function (res) {
            $scope.loadButonText = angular.element(e.target).text();
            $scope.feeds = res.data.responseData.feed.entries;
        });
    }


App.factory('FeedService', ['$http', function ($http) {
    return {
        parseFeed: function (url) {
            return $http.jsonp('//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=50&callback=JSON_CALLBACK&q=' + encodeURIComponent(url));
        }
    }

}]);

此代码不:

<ul class="dropdown-menu">
  <li ng-repeat =" newsChannel in channels">
  <a href="#" ng-click="feedSrc='{{newsChannel.src}}';loadFeed($event)">{{newsChannel.title}}</a>
  </li>
</ul>

控制器代码:

App.controller("FeedCtrl", ['$scope', 'FeedService', function ($scope, Feed) {
    $scope.loadButonText = "Select news channel";
    $scope.loadFeed = function (e) {
        Feed.parseFeed($scope.feedSrc).then(function (res) {
            $scope.loadButonText = angular.element(e.target).text();
            $scope.feeds = res.data.responseData.feed.entries;
        });
    }

$scope.channels = [
        {
            'src': 'http://www.abc.net.au/news/feed/45910/rss.xml',
            'title': 'ABC News'
        },
        {
            'src': 'http://rss.cnn.com/rss/cnn_topstories.rss',
            'title': 'CNN'
        }
    ];

}]);


App.factory('FeedService', ['$http', function ($http) {
    return {
        parseFeed: function (url) {
            return $http.jsonp('//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=50&callback=JSON_CALLBACK&q=' + encodeURIComponent(url));
        }
    }

}]);

TypeError:无法读取null的属性“ feed”

知道为什么$ scope.feedSrc无法获取feedSrc网址吗?

谢谢

瑞安

我找到了解决方法。在loadFeed方法中添加了另一个参数。

<ul class="dropdown-menu">
  <li ng-repeat =" newsChannel in channels">
  <a href="#" ng-click="loadFeed($event,newsChannel.src)">{{newsChannel.title}}</a>
  </li>
</ul>

这是控制器的新版本:

App.controller("FeedCtrl", ['$scope', 'FeedService', function ($scope, Feed) {
    $scope.loadButonText = "Select news channel";
    $scope.loadFeed = function (e, feedUrl) {
        Feed.parseFeed(feedUrl).then(function (res) {
            $scope.loadButonText = angular.element(e.target).text();
            $scope.feeds = res.data.responseData.feed.entries;
        });
    }
    $scope.channels = [
        {
            'src': 'http://www.abc.net.au/news/feed/45910/rss.xml',
            'title': 'ABC News'
        },
        {
            'src': 'http://rss.cnn.com/rss/cnn_topstories.rss',
            'title': 'CNN'
        }
    ];

}]);

感谢这篇文章:ng-在ng-repeat内单击

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ng-repeat内的AngularJS ng-show动画淡入淡出

来自分类Dev

if statement in ng-repeat directive in AngularJS

来自分类Dev

ng-repeat内的AngularJS内联编辑

来自分类Dev

AngularJS ng-repeat rerender

来自分类Dev

在angularjs中自动重复ng-repeat

来自分类Dev

AngularJS嵌套ng-repeat范围

来自分类Dev

angularjs:ng-repeat中的表单验证

来自分类Dev

angularJS在ng-repeat内添加表行(TR)-

来自分类Dev

AngularJs ng-repeat无法正常工作

来自分类Dev

AngularJS ng-repeat加载状态

来自分类Dev

ng-if在ng-repeat angularjs中

来自分类Dev

AngularJS动画基本ng-repeat滑块

来自分类Dev

angularJS从ng-repeat内的textarea获取值

来自分类Dev

AngularJS。嵌套ng-repeat

来自分类Dev

AngularJS:如何将ng-model绑定到ng-repeat内的数组

来自分类Dev

AngularJS if statement with ng-repeat

来自分类Dev

AngularJS:ng-repeat不显示JSON

来自分类Dev

过滤ng-repeat angularjs中的项目

来自分类Dev

angularjs ng-repeat确定要单击的项目

来自分类Dev

AngularJS ng-repeat colspan rowpan问题

来自分类Dev

AngularJS“垂直” ng-repeat

来自分类Dev

AngularJS ng-repeat不显示项目

来自分类Dev

嵌套的ng-repeat angularjs

来自分类Dev

ng-repeat angularjs内的输入标签

来自分类Dev

在ng-repeat内ng-switch内的orderBy angularJS吗?

来自分类Dev

AngularJs。ng-repeat问题

来自分类Dev

AngularJs在ng-repeat中设计单个单击元素的样式

来自分类Dev

在ng-repeat行angularjs内上传图片

来自分类Dev

AngularJS IF ELSE 与 ng-repeat