7

時計を減らしてパフォーマンスを向上させる方法として、bindonceについて読んでいます。パッケージをよりよく理解するために、 で例を作成しましたng-repeat

JSBINはこちら

103bindonce個の時計、100 個のリスト項目 + 2 個のボタンを取得しています。

を使用しbindonceて、3 つの時計、2 つのボタン + 1 つのフォート リストを取得しています。

私がbinonce正しく理解していれば、バインドされたオブジェクトが解決されてレンダリングされると、時計が削除されます。そう、

bindonceを使用して、オブジェクトに加えられた変更が DOM にまだ反映されている可能性はありますか?

4

1 に答える 1

9

ドキュメントにヒントがあります:

Now this example uses 0 watches per person and renders exactly the same result as the above that uses ng-. *(Angular still uses 1 watcher for ngRepeatWatch)

重要なのは、Angular が引き続き を監視しているngRepeatため、配列が変更されると配列ngRepeatが再レンダリングされ、bindonce機能が再適用されることです。

このhttp://jsbin.com/xugemico/2/editをよりよく説明するために、ここでjsbinの例を更新しました

次の追加に注意してください。

<p>
  Bindonce: first item: 
  <span bindonce="arr" bo-bind="arr[0]"></span>
</p>

上記のコードはbindonce、ngRepeat のウォッチを使用せずに最初の配列項目を使用しています。ngRepeat 内のバインドに従って値が更新されていないことがわかります。

于 2014-03-12T11:17:25.177 に答える