在我的角度应用程序上,我显示了一个直接从我的数据库加载的项目列表。我试图在任何时候显示至少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改变太多次,所以angular阻止它。我该如何解决这个问题?
由于
答案 0 :(得分:1)
使用$scope.$watchCollection
代替$scope.$watch
,因为您的filteredList
是一个集合。
使用$scope.$watch
实际上失败了,因为您在每个消化循环上重建了引用,因此观察者再次循环并循环并达到摘要限制。