quick-ng-repeat不会更新视图

时间:2015-09-16 10:38:59

标签: angularjs performance

我使用 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>

每件作品都很好。 有没有人知道为什么会这样? 非常感谢!

3 个答案:

答案 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>