在我的角度应用程序上,我显示了直接从数据库加载的项目列表。我试图始终显示至少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实际上会失败,因为您在每个摘要循环上都重新构建了引用,因此观察程序会不断循环并达到摘要限制。

Interesting article about the watching methods

关于javascript - AngularJS-达到10个$ digest()迭代。堕胎,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22558603/

10-13 00:10