Javascript 已达到Angularjs 10$digest()迭代次数

Javascript 已达到Angularjs 10$digest()迭代次数,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我有这样的代码: $scope.flags = []; $scope.$watch('selectedFilter', function() { for (var i = 0; i < 2; i++) { $scope.flags.push(i); } }); $scope.$watch('flags', function(oldval, newval) {

我有这样的代码:

$scope.flags = [];

$scope.$watch('selectedFilter', function() {    
            for (var i = 0; i < 2; i++) {
                $scope.flags.push(i);
            }    
    });

$scope.$watch('flags', function(oldval, newval) {

                    if (oldval != newval) {

                        console.log("hello");
                    }

                });
为什么会这样?我怎样才能解决这个问题呢?
注意,这是我试图做的过于简单:)

我想指出的一件事是,当您观察列表的更改时,您应该将第三个参数设置为
true

$scope.$watch('flags', function (oldval, newval) {
    if (oldval != newval) {
        console.log("hello");
    }
}, true); 

看一看:你能解释一下原因吗?@simonlchilds$watch的完整标志是$watch(watchFn,watchAction,deepWatch)。第三个参数deepWatch如果设置,则表示角度:检查对象中的每个属性是否有更改。
$scope.$watch('flags', function (oldval, newval) {
    if (oldval != newval) {
        console.log("hello");
    }
}, true);