我是AngularJS的新手,嘗試設置一個應用程序,該應用程序讀取RSS提要並在加載頁面時顯示這些項目。AngularJS在加載頁面時加載數據
我已經想出了單擊鏈接時如何加載和顯示數據(請參閱fiddle),但無法弄清楚如何在頁面加載時發生這種情況。
我的想法是我沒有正確使用$scope
或應該使用模型。
任何幫助表示讚賞。
代碼:http://jsfiddle.net/mikeyfreake/Lzgts/312/
我是AngularJS的新手,嘗試設置一個應用程序,該應用程序讀取RSS提要並在加載頁面時顯示這些項目。AngularJS在加載頁面時加載數據
我已經想出了單擊鏈接時如何加載和顯示數據(請參閱fiddle),但無法弄清楚如何在頁面加載時發生這種情況。
我的想法是我沒有正確使用$scope
或應該使用模型。
任何幫助表示讚賞。
代碼:http://jsfiddle.net/mikeyfreake/Lzgts/312/
就叫定義方法本身後的方法$scope.loadFeeds()
。
你還沒有調用你的控制器功能。只需使用此代碼控制器:
var app = angular.module('newsFeed', []);
app.controller('FeedController', ['$scope', 'FeedService', function ($scope, Feed) {
console.log('FeedController called.');
//These calls cause errors:
//$scope.loadFeeds();
//loadFeeds();
//this.loadFeeds();
//loadFeeds();
$scope.loadFeeds = function() {
console.log('loadFeeds called.');
Feed.parseFeed('http://www.rotoworld.com/rss/feed.aspx?sport=nfl&ftype=article&count=12&format=atom').then(function (res) {
$scope.rotoWorld = res.data.responseData.feed.entries;
});
};
$scope.loadFeeds();//you have leave this line pf code
}]);
使用ng-init
指令控制器被加載後&使更多的影響,同時測試使用噶&茉莉花一個代碼,會調用完全相同。
標記
<div ng-controller="FeedController" ng-init="loadFeeds()">
..other html here
<div>
雖然更好的方式是在調用結束,從控制器loadFeeds
方法,以確保所有的變量&方法已被初始化。你必須將所有的Ajax響應模擬爲模擬數據。
謝謝。真的很喜歡這個選項。 –
@MichaelFreake你真的會知道它在做代碼測試時有多重要.. –
該死的很容易。在定義方法之前,我正在嘗試呼叫。我認爲,當解析JS文件時,會定義'loadFeeds'方法,但顯然它不是。 –
是的,這將是一個正常的JavaScript執行。 –