与大对象(非长数组)一起使用ng-repeat时的AngularJS性能

时间:2016-09-20 18:55:46

标签: angularjs performance

我刚刚在这里了解了$ scope.watch https://stackoverflow.com/a/15113029/2241256

它表示视图中使用的所有内容都是由角度监视的。所以我想知道当我在ng-repeat中使用包含大对象的数组时会发生什么?

假设每个对象都有一个属性:'name',这是我在列表中唯一使用的东西。角度是否仍会在整个对象中查找更改,或者只查看每个对象的“名称”属性?

2 个答案:

答案 0 :(得分:3)

由于在视图上显示,AngularJS仅监视对象的name属性。顺便说一下,如果那些name属性的值不需要直接更新,则可以通过在变量之前添加::来使用单向数据绑定。喜欢; ng-bind="::object.name"。如果这样做,AngularJS不会监视您对象的变量。别担心。如果更新包含所有这些对象的数组,AngularJS将因更新数组而更新这些名称属性。

您可以阅读this page个单向数据绑定文档。

答案 1 :(得分:2)

只是'名称'属性。
仅监视模板内部使用的内容({{和}}之间)或手动注册($scope.watch('myVar', function () { ... })