0

我对 Angular js 很陌生,但似乎我的简单代码应该可以工作。这是html:

    <body ng-app="MyHomepage">
    <div ng-controller="RedditLoad">
        {{a}}
        <ul>
            <li ng-repeat="article in a">
            {{article.data.title}}
            </li....

这是我的 angualr_app.js:

    var App = angular.module('MyHomepage', [])
    function RedditLoad($scope){
        $.getJSON("http://www.reddit.com/.json?jsonp=?", function(data) {
            var data_array = []; 
            $.each(data.data.children, function(i,item){
                data_array.push(item);
            });
           console.log(data_array);
           $scope.a = data_array;
        });
    }

我究竟做错了什么?console.log(data_array); 正在显示正确的值,但数据似乎不会传递给模板。

4

1 回答 1

1

getJSON 回调不在 Angular 上下文中执行,因此 Angular 不知道您的更改并且不会刷新绑定。当从外部源(如 jQuery 事件)调用代码时,您必须将范围更改封装在 $apply 调用中:

$scope.$apply(function{ 
    $scope.a = data_array;
}
于 2013-07-17T15:44:39.080 回答