据我所知,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>
每次ng-repeat都会设置$watch. (如果你看一下
ng-repeat source code,大部分都是$watch方法的watchExpression函数).每次Angular
digest cycle运行时,此项目中的每个项目都将由此监视功能进行检查. (请注意,在摘要周期中,可以多次调用此监视功能).
每个{{}}设置一个$watch.如果item.property之类的内容在{{}}内,则每个摘要周期至少检查一次.
如果函数在{{}} s内,则每个摘要周期至少调用一次该函数.
我不确定x |过滤器,但this fiddle似乎表明,每个摘要周期至少调用一次过滤器,即使x没有变化.