我使用 quick-ng-repeat Quick-ng-repeat进行迭代,因为它是一个巨大的列表,我会提高性能。
现在我认识到,如果我更改模型,则不会使用以下代码更新视图:
<span quick-ng-repeat="item in collection track by $index" quick-repeat-list="items">
{{ item }}
</span>
使用此代码
<span ng-repeat="item in collection track by $index">
{{ item }}
</span>
每件作品都很好。 有没有人知道为什么会这样? 非常感谢!
答案 0 :(得分:8)
quick-ng-repeat并不像ng-repeat那样实现深度监视,它实现单向绑定方法。因此,如果您的模型经常更改,请不要使用它。
在Angular 1.2中,对ngRepeat的语法进行了新的添加:令人惊讶的track by子句。它允许您指定自己的ngRepeat键来识别对象,而不是仅生成唯一ID。
这意味着您可以通过task.id&#34;将上述内容更改为任务跟踪中的ng-repeat =&#34;任务。由于原始任务中的ID和服务器中的更新ID相同 - ngRepeat将知道不重新创建DOM元素并重用它们
答案 1 :(得分:1)
Quick ng-repeat正在进行单向绑定,类似于我们在angularjs
中的操作<div ng-repeat="item in ::items">{{item.name}}</div>
这不会造成不必要的手表。
答案 2 :(得分:1)
我认为Quick-ng-repeat使用单个绑定与角度1.4一样(::)。单个绑定意味着它将为您的重复创建一个观察者,为什么它不会在对象发生变化时起作用。
<div ng-repeat="obj in ::objList">{{obj.name}}</div>