这是一个常见问题:
达到$ $ digest()迭代次数。中止!
观察者在最近5次迭代中被解雇:[]
文件(https://docs.angularjs.org/error/$ rootScope / infdig)解释了什么不能避免这种情况。
然而,偶尔,你最终会陷入困境。对于比玩具应用程序更大的项目,找到无限消化循环的原因可能非常困难。
我正在寻找有关如何找出导致循环的代码所在位置的调试提示。
这是一个常见问题:
达到$ $ digest()迭代次数。中止!
观察者在最近5次迭代中被解雇:[]
文件(https://docs.angularjs.org/error/$ rootScope / infdig)解释了什么不能避免这种情况。
然而,偶尔,你最终会陷入困境。对于比玩具应用程序更大的项目,找到无限消化循环的原因可能非常困难。
我正在寻找有关如何找出导致循环的代码所在位置的调试提示。
问题已在这里得到解答 - 如何解决Angular“10 $ digest()迭代到达”错误
作为两个最佳答案的简历:
加
你可以随时放 条件断点 这里 https://github.com/angular/angular.js/blob/c3220325a0a95484724a03bedca24e1bbf05dc80/src/ng/rootScope.js#L815 检查异常堆栈跟踪。
问题已在这里得到解答 - 如何解决Angular“10 $ digest()迭代到达”错误
作为两个最佳答案的简历:
加
你可以随时放 条件断点 这里 https://github.com/angular/angular.js/blob/c3220325a0a95484724a03bedca24e1bbf05dc80/src/ng/rootScope.js#L815 检查异常堆栈跟踪。
可能有多种原因。我遇到的一个常见原因是由于过滤器 ng-repeat
它返回一个新的数组来处理 ng-repeat
。
所以检查你的 ng-repeat
具有关联过滤器的表达式,用于修改数组。
对我来说,错误发生在更改网址的方法中:
self.setURL = function(item) {
var mainUrl = window.location.origin + '#/' + self.baseUrl;
if (item) {
mainUrl += item.testId;
}
$location.$$absUrl = mainUrl;
};
这导致了 $rootScope:infdig
错误
因此,当调试此检查时,检查当前控制器/指令中的ur,location,hrefs是什么