我的服務使用googleapis解析RSS並返回包含其他對象的數組的Object。 下面,鍍鉻控制檯輸出中:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
0: Object
1: Object
2: Object
3: Object
但在我的控制器不能使用localStorage的檢索數據,控制檯輸出只返回支架或全無:
$scope.feeds = FeedList.get();
window.localStorage.setItem('savedData', JSON.stringify($scope.feeds));
console.log('TEST : ' + window.localStorage['savedData']);
console.log('TEST : ' + JSON.parse(window.localStorage.getItem('savedData')));
console.log('TEST : ' + JSON.parse(window.localStorage['savedData']));
輸出繼電器:
TEST : []
TEST :
TEST :
請問有什麼不對?
service.js
.factory('FeedLoader', function ($resource) {
return $resource('http://ajax.googleapis.com/ajax/services/feed/load', {}, {
fetch: { method: 'JSONP', params: {v: '1.0', callback: 'JSON_CALLBACK'} }
});
})
.service('FeedList', function ($rootScope, FeedLoader) {
var feeds = [];
this.get = function() {
var feedSources = [
{title: 'rss1', url: 'http://www.website.com/rss/feed/rss_feed_25300'},
{title: 'rss2', url: 'http://www.website.com/rss/feed/rss_feed_10720'},
];
if (feeds.length === 0) {
for (var i=0; i<feedSources.length; i++) {
FeedLoader.fetch({q: feedSources[i].url, num: 10}, {}, function (data) {
var feed = data.responseData.feed;
console.log(feed.entries);
feeds.push(feed.entries);
});
}
}
return feeds;
};
})
我試過並:「TypeError:無法讀取屬性'然後'未定義」。我在我的文章中添加了service.js文件。 – Mezoo
謝謝,我明白我不會像你說的那樣處理異步 – Mezoo
@Mezoo看到你的服務後,我可以看到服務沒有返回任何讓消費者等待結果的東西。請參閱我的更新。這是相當多的代碼要修改而不能測試它,但希望它能工作。 – JLRishe