我正在使用 Express(即 Jade)和 Angular 构建一个小型 rss 阅读器。我有一个下拉菜单,其中菜单项由模型中的项目列表填充。 无论用户选择什么项目,都会附加一个 rss url,并且它应该触发一个工厂。 这是 Jade 部分:
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')
这是我的 Angular Controller :
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));}}
}]);
ng-click 中的 feedSrc 似乎没有捕获 rss.url,并且无法作为参数传递给 parseFeed 函数。
我尝试将 rss.url 直接传递到 loadFeed 中,就像这样 ng-click="loadFeed({{rss.url}});"
甚至 ng-click="loadFeed(' {{rss.url}}');"我也没工作。
最佳答案
只需这样传递:
ng-click="loadFeed(rss.url)"
无需在 ng-click 中使用 {{ }}
关于AngularJS ng-click 链接到模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648740/