Javascript AngularJS在页面加载时加载数据

Javascript AngularJS在页面加载时加载数据,javascript,angularjs,Javascript,Angularjs,我是AngularJS的新手,正在尝试设置一个可以读取RSS提要并在页面加载时显示项目的应用程序 我已经知道了如何在单击链接时加载和显示数据(请参阅),但无法知道如何在页面加载时实现这一点 我的想法是,我没有正确使用$scope,或者应该使用模型 感谢您的帮助 代码:定义方法本身后,只需调用方法$scope.loadFeeds()。您尚未调用控制器函数。只需将此代码用于控制器: var app = angular.module('newsFeed', []); app.controll

我是AngularJS的新手,正在尝试设置一个可以读取RSS提要并在页面加载时显示项目的应用程序

我已经知道了如何在单击链接时加载和显示数据(请参阅),但无法知道如何在页面加载时实现这一点

我的想法是,我没有正确使用
$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您将真正知道在进行代码测试时它有多么重要。。