嵌套在惰性一次性 ng-repeat 绑定中的绑定是不是只绑定一次?
Posted
技术标签:
【中文标题】嵌套在惰性一次性 ng-repeat 绑定中的绑定是不是只绑定一次?【英文标题】:Do bindings nested inside of a lazy one-time ng-repeat binding bind just once?嵌套在惰性一次性 ng-repeat 绑定中的绑定是否只绑定一次? 【发布时间】:2014-07-17 04:34:52 【问题描述】:我的理解是,在以下代码中,两个绑定都会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】:场景一:
<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
【讨论】:
我们可以这样做吗? -<li ng-repeat="item in items">::item.name</li>
@Chipmunk 是的。只需玩 tasseKATT 提供的 Plnkr 演示,您就可以亲眼看看。以上是关于嵌套在惰性一次性 ng-repeat 绑定中的绑定是不是只绑定一次?的主要内容,如果未能解决你的问题,请参考以下文章
ng-model 绑定到 ng-repeat Angularjs 中的元素
AngularJS——创建自定义数据绑定和 ng-repeat