嵌套在懒惰的一次性ng-repeat绑定内部只绑定一次吗?

时间:2014-05-28 05:25:27

标签: angularjs binding angularjs-ng-repeat

我的理解是,在以下代码中,两个绑定都将 lazily bind only once

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

但是,在以下情况下,每个摘要都会更新{{item.name}}

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

一次性绑定效果如何嵌套ng-repeat s

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

1 个答案:

答案 0 :(得分:153)

场景1:

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

两个表达式都是一次性绑定。添加项目或更改现有项目的名称将不会反映出来。

演示: http://plnkr.co/edit/53r8FCmcNK4MmM6Uzxp2?p=preview

场景2:

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

第一个表达式将是一次性绑定。添加项目不会反映出来。将反映更改现有项目的名称。

演示: 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>

第一个表达式将是一次性绑定。添加新项目不会反映出来。将反映出添加新内容并更改现有内容的名称。

演示: http://plnkr.co/edit/HkObhkJtUnFEHBAzFUmN?p=preview