Javascript AngularJS在页面加载时加载数据
我是AngularJS的新手,正在尝试设置一个可以读取RSS提要并在页面加载时显示项目的应用程序 我已经知道了如何在单击链接时加载和显示数据(请参阅),但无法知道如何在页面加载时实现这一点 我的想法是,我没有正确使用Javascript AngularJS在页面加载时加载数据,javascript,angularjs,Javascript,Angularjs,我是AngularJS的新手,正在尝试设置一个可以读取RSS提要并在页面加载时显示项目的应用程序 我已经知道了如何在单击链接时加载和显示数据(请参阅),但无法知道如何在页面加载时实现这一点 我的想法是,我没有正确使用$scope,或者应该使用模型 感谢您的帮助 代码:定义方法本身后,只需调用方法$scope.loadFeeds()。您尚未调用控制器函数。只需将此代码用于控制器: var app = angular.module('newsFeed', []); app.controll
$scope
,或者应该使用模型
感谢您的帮助
代码:定义方法本身后,只需调用方法
$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
指令,该指令将在控制器加载后调用,并在使用Karma&Jasmine测试代码时产生更大的影响
标记
<div ng-controller="FeedController" ng-init="loadFeeds()">
..other html here
<div>
…这里有其他html
虽然更好的方法是在最后从控制器调用
loadFeeds
方法,以确保所有变量和方法都已初始化。您必须将所有ajax响应模拟为模拟数据。这很容易。在定义方法之前,我正在尝试调用。我假设在解析JS文件时,会定义loadFeeds
方法,但显然不是。是的,这将是一个正常的javascript执行。谢谢。非常喜欢这个选项。@MichaelFreake您将真正知道在进行代码测试时它有多么重要。。