首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >达到AngularJS - 10 $digest()迭代。正在中止

达到AngularJS - 10 $digest()迭代。正在中止
EN

Stack Overflow用户
提问于 2014-03-21 12:20:16
回答 1查看 186关注 0票数 1

在我的角度应用程序中,我显示了一个项目列表,我直接从我的数据库加载。我一直在努力让至少20个项目显示出来。用户可以过滤它们,所以当应用太多过滤器时,我想加载更多。

到目前为止,我这样做的方式如下: HTML:

代码语言:javascript
运行
复制
<section id="list" class="ease">
          <article class='myItems' ng-repeat="job in filteredList = (items | filter: country | filter: category | filter: position)">
                   Items
          </article>
</section>

JS (在我的控制器中):

代码语言:javascript
运行
复制
$scope.$watch('filteredList', function(newVal, oldVal){
    if(newVal !== oldVal){
        $log.info($scope.filteredList.length);
        // code to load more data
    }
});

但是,我得到了以下错误:

代码语言:javascript
运行
复制
Error: 10 $digest() iterations reached. Aborting

我猜这是因为filteredList变化了太多次了,所以角度阻碍了它。我怎么才能解决这个问题?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-21 12:32:58

使用$scope.$watchCollection而不是$scope.$watch,因为filteredList是一个集合。

使用$scope.$watch实际上失败了,因为您重新构建了每个消解循环上的引用,因此观察者再次循环和循环,并达到摘要限制。

关于观看方法的有趣文章

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22558603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档