AngularJS - 10次$digest()迭代完成.流产

AngularJS - 10 $digest() iterations reached. Aborting

本文关键字:迭代 流产 10次 digest AngularJS      更新时间:2023-09-26

在我的angular应用中,我显示了一个直接从数据库加载的项目列表。我试图得到至少20项显示在所有的时间。用户可以过滤它们,所以当应用了太多过滤器时,我想加载更多。

到目前为止,我的做法如下:HTML:
<section id="list" class="ease">
          <article class='myItems' ng-repeat="job in filteredList = (items | filter: country | filter: category | filter: position)">
                   Items
          </article>
</section>

JS(在我的控制器中):

$scope.$watch('filteredList', function(newVal, oldVal){
    if(newVal !== oldVal){
        $log.info($scope.filteredList.length);
        // code to load more data
    }
});

但是我得到以下错误:

Error: 10 $digest() iterations reached. Aborting

我猜这是因为filteredList改变太多次,所以角块它。我该如何解决这个问题?

谢谢

使用$scope.$watchCollection代替$scope.$watch,因为您的filteredList是一个集合。

使用$scope.$watch实际上失败了,因为您在每个消化循环上重建了引用,因此监视器循环并再次循环并达到消化限制。

关于观看方法的有趣文章