gpt4 book ai didi

javascript - AngularJS FeedReader - 不填充数组

转载 作者:行者123 更新时间:2023-11-30 05:34:17 25 4
gpt4 key购买 nike

我正在尝试创建一个 AngularJS 应用程序,它将获取提要并重新格式化它,这样我就可以在页面上显示我写的博客的某些部分,而不需要博客上的所有内容。首先,我只是尝试降低博客提要并显示帖子标题,我使用 slashdot 提要作为测试。

这是我的第一个 Angular 项目,所以我四处寻找类似于用作模板的东西并找到了这个:http://www.jdev.it/a-very-simple-rss-reader-with-angularjs-and-google-feed-api/

JS:

var feedList = [];
var app = angular.module('FeedReader',['ngResource']);

app.factory('feedLoader',['$resource', function($resource){
var googleAPI = $resource('http://ajax.googleapis.com/ajax/services/feed/load',{},{ collect: { method: 'JSONP', params: { v: '1.0', callback: 'JSON_Callback' } } });
return googleAPI;
}]);

app.service('createFeedList',['feedLoader', function(feedLoader){
this.get = function(){
var feed = {
feedName: 'Slashdot',
feedURL: 'http://rss.slashdot.org/Slashdot/slashdot'
};

feedLoader.collect({q: feed.feedURL, num: 10},{},function(results){
var results = data.responseData.feed;
feedList.push(results);
});
};

return feedList;
}])

app.controller('blogCtrl',['$scope','createFeedList', function($scope, createFeedList){
createFeedList.get;
this.feedList = feedList;
}]);

HTML:

<html ng-app="FeedReader">
<head>
<meta charset="UTF-8">
<title>Reader Trial</title>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.19/angular-resource.js"></script>
</head>

<body ng-controller="blogCtrl">
<ul>
<li ng-repeat="list in feedList">{{list.title}}</li>
</ul>

<script src="./feedReader.js"></script>
</body>
</html>

关于为什么我没有填充 feedList 数组的任何想法?/没有输出

编辑 - 我已经为此 http://jsfiddle.net/6L9K5/ 设置了一个 fiddle

最佳答案

我在您的代码中发现了三个错误。

首先,您必须根据angular docscollect 回调的名称更改为大写的'JSON_CALLBACK' :

collect: { 
method: 'JSONP',
params: { v: '1.0', callback: 'JSON_CALLBACK' }
}

然后,在您的收集回调中,您使用 data 而它未定义。您应该按如下方式更改它:

feedLoader.collect({q: feed.feedURL, num: 10},{},function(result){
var feed = result.responseData.feed;
feedList.push(feed);
});

最后,在您的 Controller 中,您永远不会设置 $scope.feedList 变量:

app.controller('blogCtrl', ['$scope', 'createFeedList', function ($scope, createFeedList) {
$scope.feedList = createFeedList.get();
}]);

在这里您可以找到您的代码的修复: http://jsfiddle.net/yohanrobert/CadYt/7/

关于javascript - AngularJS FeedReader - 不填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com