Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS ng单击链接到模型_Angularjs_Angularjs Ng Click - Fatal编程技术网

AngularJS ng单击链接到模型

AngularJS ng单击链接到模型,angularjs,angularjs-ng-click,Angularjs,Angularjs Ng Click,我正在使用Express(即Jade)和Angular构建一个小型rss阅读器。我有一个下拉菜单,菜单项由模型中的项目列表填充。 无论用户选择什么作为项目,都会有一个附加到它的rss url,它会触发一个工厂。 这是玉的部分: div.btn-group button.btn.btn-info(type='button') {{loadButtonText}} button.btn.btn-info.dropdown-toggle(data-toggle='dropdown')

我正在使用Express(即Jade)和Angular构建一个小型rss阅读器。我有一个下拉菜单,菜单项由模型中的项目列表填充。 无论用户选择什么作为项目,都会有一个附加到它的rss url,它会触发一个工厂。 这是玉的部分:

div.btn-group
    button.btn.btn-info(type='button') {{loadButtonText}}
    button.btn.btn-info.dropdown-toggle(data-toggle='dropdown')
        span.caret
        span.sr-only Toggle Dropdown
    ul.dropdown-menu(role='menu')
        li(ng-repeat='rss in RSSList')
            a(href='#', ng-click="feedSrc='{{rss.url}}';loadFeed($event);") {{rss.Title}}
        input.form-control(type='text', autocomplete='off', placeholder="This is where your feed's url will appear" data-ng-model='feedSrc')
这是我的角度控制器:

var News = angular.module('myApp', []);
News.controller('FeedCtrl', ['$scope','FeedService', function($scope, Feed){
    $scope.loadButtonText = 'Choose News Feed';
    $scope.RSSList = [
        {Title: "CNN", url: 'http://rss.cnn.com/rss/cnn_topstories.rss'},
        {Title: "Reuters", url: 'http://feeds.reuters.com/news/usmarkets'}
    ];
    $scope.loadFeed = function (e) {
        Feed.parseFeed($scope.feedSrc).then(function (res) {
            $scope.loadButtonText=angular.element(e.target).text();
            $scope.feeds = res.data.responseData.feed.entries;
            }); }}]);
News.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));}}
}]);
$scope.loadFeed = function (url, e) {
    Feed.parseFeed(url).then(function (res) {
      $scope.loadButtonText=angular.element(e.target).text();
      $scope.feeds = res.data.responseData.feed.entries;
 }); }}]);
ng click中的feedSrc似乎没有捕获rss.url,并且不能作为参数传递给parseFeed函数。 我试图将rss.url直接传递到loadFeed中,就像这样
ng click=“loadFeed({rss.url}}”);
甚至
ng click=“loadFeed({rss.url}”);“我也没有工作。

为什么不直接使用:

杰德:

控制器:

var News = angular.module('myApp', []);
News.controller('FeedCtrl', ['$scope','FeedService', function($scope, Feed){
    $scope.loadButtonText = 'Choose News Feed';
    $scope.RSSList = [
        {Title: "CNN", url: 'http://rss.cnn.com/rss/cnn_topstories.rss'},
        {Title: "Reuters", url: 'http://feeds.reuters.com/news/usmarkets'}
    ];
    $scope.loadFeed = function (e) {
        Feed.parseFeed($scope.feedSrc).then(function (res) {
            $scope.loadButtonText=angular.element(e.target).text();
            $scope.feeds = res.data.responseData.feed.entries;
            }); }}]);
News.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));}}
}]);
$scope.loadFeed = function (url, e) {
    Feed.parseFeed(url).then(function (res) {
      $scope.loadButtonText=angular.element(e.target).text();
      $scope.feeds = res.data.responseData.feed.entries;
 }); }}]);

只需这样传递:

ng-click="loadFeed(rss.url)"
无需在ng click中使用{{}}