概括:
在 AngularJs 中,如果在多个地方使用同一个变量进行数据绑定,是否会导致每个 $digest-cycle 对该变量进行多次脏检查?
更长的问题:
我想从模板的范围内打印一个变量,但应用程序对性能非常敏感。假设模板包含以下内容:
<div>{{variableInScope}}</div>
<span class="{{variableInScope}}">We print {{variableInScope}} a lot!</span>
<span class="{{variableInScope}}">We print {{variableInScope}} again!</span>
... snip ~100 lines ...
</div>
variableInScope
这会导致每个 $digest 循环检查一次或 200 次变量吗?
“糟糕的代码!为什么不使用 NG-repeat?”
上面的代码只是说明问题的一个例子。我正在构建一个数据网格,但我不能使用 NG-repeat,因为它设置了很多观察者,导致客户计算机上的摘要时间超过 2 秒。
“只需使用 ng-grid!”
NG-grid 在很多方面都很棒,但对于我们的用例来说,它也有同样的问题:导致许多 ng-repeat 的方式,导致性能下降。由于页面其余部分的复杂性,我们确实需要将 $digest 时间降至最低。