我决定模块化html并将其中的一部分放在其他HTML中。
<div ng-include="'file.html'"></div>
当我运行应用程序时,会加载file.html文件,但在控制台中我收到此错误:
10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
我不知道出了什么问题。
这里的所有错误:
angular.min.js:1 Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: []
http://errors.angularjs.org/1.3.9/$rootScope/infdig?p0=10&p1=%5B%5D
at angular.min.js:1
at l.$digest (angular.min.js:3)
at l.$apply (angular.min.js:3)
at g (angular.min.js:2)
at x (angular.min.js:2)
at XMLHttpRequest.m.onload (angular.min.js:2)
(anonymous) @ angular.min.js:1
$digest @ angular.min.js:3
$apply @ angular.min.js:3
g @ angular.min.js:2
x @ angular.min.js:2
m.onload @ angular.min.js:2
答案 0 :(得分:1)
确保您在ngInclude中引用的路径有效,否则您将获得无限的摘要循环。
答案 1 :(得分:1)
当.html文件的路径不正确时会触发此错误。所以检查文件是否可用,是否在正确的位置。
答案 2 :(得分:1)
您所包含的文件包含产生不可重复结果的代码。
AngularJS将尝试两次计算所有观察的表达式。如果结果不同,它将继续一次又一次地计算它们,直到它连续两次得到相同的东西。
此错误表示某些可观察代码在10个调用限制期间未产生两次相同的结果。例如,如果监视表达式使用返回随机结果或突变内部状态的函数,则会发生这种情况。确保所有观察到的表达式(包括指令表达式)都是纯粹的,即。不要影响应用程序的内部状态,只能获取值。
答案 3 :(得分:0)
找出应用程序的哪个部分导致此行为的最快解决方案是:
1.删除所有可疑HTML - 基本上从模板中删除所有html,并检查是否没有警告
2.如果没有警告 - 添加你删除的html的一小部分并检查问题是否已经恢复
3.重复步骤2直到你收到警告 - 你会发现你的html的哪一部分是导致问题的原因
4.进一步调查 - 第3步中的部分负责改变$ scope上的对象,或者在每个$ digest周期返回不相同的对象。
5.如果您在步骤1之后仍然有$ digest迭代警告,那么您可能正在做一些非常可疑的事情。对父模板/范围/控制器重复相同的步骤
您还需要确保不要更改自定义过滤器的输入
请记住,在JavaScript中,有一些特定类型的对象不像您通常期望的那样:
new Boolean(true) === new Boolean(true) // false
new Date(0) == new Date(0) // false
new String('a') == new String('a') // false
new Number(1) == new Number(1) // false
[] == [] // false
new Array == new Array // false
({})==({}) // false
并检查此
<ng-include src=" 'pathto/file.html' "></ng-include>