我试图连接一个临时函数进行测试,返回一个随机日期显示在我的视图中。这是因为它陷入循环而抛出错误,所以我认为将其转换为单向绑定会起作用,但问题仍然存在。实际错误是:
[$rootScope:infdig] 10 $digest() iterations reached. Aborting!
当绑定到返回随机值的方法调用时,为什么Angular会陷入无限循环?一旦返回不是undefined
的值
示例plunk
注意:我不是在寻找修复,我已经用一次性生成的随机值替换了函数调用,但我很想知道为什么一次性绑定在继续评估之后模型应该(从我的理解)稳定下来。
答案 0 :(得分:1)
要了解为什么会发生这种情况,您需要了解摘要周期。
脏检查
Angular基于"脏检查"。
Angular基本上遍历$scope
中的所有属性,以查看已更改的内容。如果任何属性发生变化,Angular会激活所有观察者,让他们了解这些变化
由于手表可以更改示波器的属性,因此Angular会在手表完成后运行另一轮脏检查。当迭代遍历所有属性并且它们看不到它们都没有改变时,消化循环停止。
当手表始终为Math.random()