为什么$ digest会运行已在范围内注册的所有手表?

时间:2014-04-24 20:23:28

标签: angularjs angularjs-scope

我想知道为什么$ digest运行已在示波器上注册的所有手表,如果你有多个输入来自视野范围的数据,为什么AngularJS必须脏检查范围内的所有手表例如,只有一个输入字段绑定到标签?

1 个答案:

答案 0 :(得分:0)

Angular不是透视;除了通过检查它们的价值,它不知道你的观察者做了什么。如果某些内容可能已经发生变化,可能意味着需要更新显示的数据,Angular将检查所有观察者。如果不需要检查某些东西,它就不应该有观察者。

当然,你可能有一些东西只需要绑定一次,之后就不会改变,这意味着它不需要经常检查。我不确定是否有标准解决方案,但这里是project on Github that provides one-time binding for Angular