8

AngularJSがng-repeatにいくつかの時計を設定していることを理解しています。この時点でどのタイプの時計がセットアップされていますか?

また、誰かがこれらのシナリオのそれぞれで何が起こるかを説明できますか?アイテムがたくさんあるので知りたいので、他の方法で書いていたら排除できたはずの時計にユーザーが困惑することはありません。

1

<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がに$watchを設定しitemsます。(ng-repeatソースコードを見ると、そのほとんどは$ watchメソッドのwatchExpression関数です)。Angularダイジェストサイクルが実行されるたびitemitems、このウォッチ機能によって各入力が検査されます。(ダイジェストサイクルでは、この監視関数が複数回呼び出される可能性があることに注意してください)。

それぞれ{{}}が$watchを設定します。のようなものitem.propertyが{{}}の中にある場合、ダイジェストサイクルごとに少なくとも1回はダーティチェックされます。

関数が{{}}内にある場合、その関数はダイジェストサイクルごとに少なくとも1回呼び出されます。

についてはよくわかりませんx | filterが、このフィドルは、たとえx変更されていなくても、フィルターがダイジェストサイクルごとに少なくとも1回呼び出されることを示しているようです。

于 2013-03-26T20:23:39.607 に答える