$ scope中$ scope值不可预测

时间:2016-04-01 06:09:11

标签: javascript angularjs angularjs-scope

我想无限期地遍历一个JSON数组(下面名为playbook)。

我有以下代码:

$scope.loadPlaybook = function () {
    $http.get('/static/lib/playbook.json')
        .then(function (res) {
            $scope.data.playbook = res.data;

            console.log('Playbook data:', $scope.data.playbook);

            $interval(function () {
                console.log('Trying to access from $interval:', $scope.data.playbook);
            }, 1000);
        },
        function (err) {
            // ..
        });
};

有时,$scope.data.playbook$interval回调中定义,大部分时间都没有。

当我加载页面的70%时,输出如下所示:

enter image description here

当我加载页面时,有30%的时间输出如下:

enter image description here

我正在使用Angular 1.5.1和Google Chrome。

1 个答案:

答案 0 :(得分:0)

这可能不会直接回答您的问题,但据我所知,请注意console.log()显示在运行时作为参数传递的对象的预览,然后在当前对象状态时更新单击控制台中显示的预览。如果要在特定时间查看对象的状态,可以console.log(angular.copy(sourceObj))。您可以将这两个结合起来检查$ scope.data是否在最初设置后被其他地方覆盖。

希望它有所帮助!