我是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执行。 –