首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试$rootScope:infdig

调试$rootScope:infdig
EN

Stack Overflow用户
提问于 2015-09-24 08:14:41
回答 3查看 5K关注 0票数 13

这是一个常见的问题:

达到5次$digest()迭代。流产! 在最近5次迭代中触发的观察者:[]

文档(https://docs.angularjs.org/error/$rootScope/infdig)解释了如何避免这种情况。

然而,偶尔,你最终还是会陷入这种情况。对于一个比玩具应用程序更大的项目,找出无限文摘循环的原因是非常困难的。

我正在寻找调试提示,说明如何才能找到代码所在的位置,这将导致循环。

EN

回答 3

Stack Overflow用户

发布于 2016-08-15 14:14:30

问题已经在这里回答了- How to Troubleshoot Angular "10 $digest() iterations reached" Error

作为一份简历,有两个最佳答案:

  1. 删除所有可疑的-基本上从模板中删除所有html,并检查是否存在警告(https://stackoverflow.com/a/17129274/274500)
  2. 通常,当函数返回一个新对象 (https://stackoverflow.com/a/17116322/274500)时,就会发生这种情况。

加号

您始终可以在这里放置条件断点,以检查异常堆栈跟踪。

票数 11
EN

Stack Overflow用户

发布于 2016-08-13 06:10:36

这可能有多种原因。我遇到的一个常见原因是由于ng-repeat中有一个过滤器,它返回一个新数组来处理ng-repeat

因此,请检查您的ng-repeat表达式,这些表达式有关联的过滤器,这些过滤器正在修改数组。

票数 2
EN

Stack Overflow用户

发布于 2019-02-24 14:26:46

对我来说,在更改url的方法中发生了错误:

代码语言:javascript
复制
> self.setURL = function(item) {
>    
> 
>//Ajax call followed by promise function
>      servicejsfile.somefunctiom(transferObj).then(responce){
>        

> var somethingTrue=responce.featureAvailable;
>if (somethingTrue) {
> dothis();
>}else
> $window.location = newlocation;
> };

这将更改我的应用程序的URL的最后一部分。这导致了$rootScope:infdig错误

所以在调试时,我注释掉了这个部分,并且错误不会随着应用需求的改变而重复。

我无法修复这一点,所以我们的要求保持不变,我可以改变位置。

这个问题发生在控制器功能内的一些Ajax调用中,只有在IE For FF、chrome和safari中,它表现得非常完美,因为JavaScript引擎对于这些浏览器来说更快。

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

https://stackoverflow.com/questions/32756513

复制
相关文章

相似问题

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