角度范围变量没有数据

时间:2013-07-17 15:36:55

标签: angularjs angularjs-scope

我对角度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中);显示正确的值但数据似乎不会传递给模板。

1 个答案:

答案 0 :(得分:1)

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

$scope.$apply(function{ 
    $scope.a = data_array;
}