一尘不染

通过(key,val)在ng-repeat中的Angularjs ng-model不更新

angularjs

这是我不工作的演示

<section ng-repeat="t in test">
  <div ng-repeat="(key,value) in t">
    <div>{{key}}</div>
   <input type="text" ng-model="value"/>
  </div>
</section>

模型保持不变。如何同步?请注意,数据结构很重要。


阅读 190

收藏
2020-07-04

共1个答案

一尘不染

ng-model结合将评估在当前范围的表达。作为ng-repeat创建一个子范围,这意味着ng- model将寻找一个命名属性value的子范畴。在您的示例中,我们希望它val 范围内查找属性,该属性的别名为t

这是设计使然,可以通过引用t表达式中的父范围来避免这种情况。

工作演示

代码(注意输入元素上的绑定已更改):

<section ng-repeat="t in test">
  <div ng-repeat="(key,value) in t">
    <div>{{key}}</div>
   <input type="text" ng-model="t[key]"/>
  </div>
</section>

当您使用Angular 1.3的Beta版时,这可能是一个错误。

2020-07-04