web-dev-qa-db-ja.com

遅延1回限りのng-repeatバインディング内にネストされたバインディングは1回だけバインドしますか?

私の理解では、次のコードでは、両方のバインディングが一度だけ遅延バインド

<li ng-repeat="item in ::items">{{::item.name}}</li>

ただし、次の場合{{item.name}}ダイジェストごとに更新されますか?

<li ng-repeat="item in ::items">{{item.name}}</li>

そしてワンタイムバインディングはネストされたng-repeats

<li ng-repeat="item in ::items">
  <span ng-repeat="thing in item.things">{{thing.name}}</span>
</li>
67
Gil Birman

シナリオ1:

<li ng-repeat="item in ::items">{{::item.name}}</li>

両方の式は1回限りです。アイテムの追加または既存のアイテムの名前の変更は反映されません。

デモ:http://plnkr.co/edit/53r8FCmcNK4MmM6Uzxp2?p=preview

シナリオ2:

<li ng-repeat="item in ::items">{{item.name}}</li>

最初の式は1回限りです。アイテムを追加しても反映されません。既存のアイテムの名前を変更すると反映されます。

デモ:http://plnkr.co/edit/52wTEb8ze2FKRDDcS9Ow?p=preview

シナリオ3:

<li ng-repeat="item in ::items">
  <span ng-repeat="thing in item.things">{{thing.name}}</span>
</li>

最初の式は1回限りです。新しいアイテムを追加しても反映されません。新しいものを追加し、既存のものの名前を変更すると反映されます。

デモ:http://plnkr.co/edit/HkObhkJtUnFEHBAzFUmN?p=preview

153
tasseKATT