8

我知道 AngularJS 在 ng-repeat 上设置了一些监视。此时设置的是什么类型的手表?

另外,有人可以解释每种情况下会发生什么吗?如果我有很多物品,我想知道如果我以其他方式编写它,用户不会被可能被淘汰的手表所困扰。

<div ng-repeat="item in items">
  <div>{{item.property}}</div>
</div>

<div ng-repeat="item in items">
  <div>{{item.property | myFormatter}}</div>
</div>

<div ng-repeat="item in items">
  <div>{{format(item.property)}}</div>
</div>

<div ng-repeat="item in items">
  <div>{{item.something()}}</div>
</div>
4

1 回答 1

7

每个ng-repeat人都会在items. (如果看ng-repeat 源码,大部分是 $watch 方法的 watchExpression 函数)。每次运行 Angular摘要循环时,此 watch 函数都会检查每个itemin 。items(请注意,在摘要循环中,可以多次调用此 watch 函数)。

每个人都{{}}设置了一个 $watch。如果item.property{{}} 中有类似内容,则每个摘要周期至少对其进行一次脏检查。

如果一个函数在 {{}} 内,则该函数在每个摘要循环中至少调用一次。

我不确定x | filter,但这个小提琴似乎表明过滤器在每个摘要周期至少被调用一次,即使x没有改变。

于 2013-03-26T20:23:39.607 回答