Angularjs ng-model嵌套在ng-repeat内部全部更新

时间:2014-06-07 03:14:38

标签: angularjs angularjs-ng-repeat ng-repeat angular-ngmodel

这应该很简单。出于某种原因,当在ng-repeat中使用ng-model时,它会更新重复循环内的所有ng-model。

这是代码。有任何想法吗? http://plnkr.co/edit/iAgrPwwBMilCyeReeLt9?p=info

感谢。

1 个答案:

答案 0 :(得分:0)

有趣!!!

问题是您正在使用“$ scope.columns”

中的对象重置row.field

in

<td>
  <select ng-model="row.field" ng-options="column.title for column in columns"></select>
</td>

这里,row.field使用$ scope.columns中的对象重置,如果您在一行中更改此对象,因为其他行也使用相同的对象,它们会重复相同的值。

您可以将此模型更改为row.field.type为

<td>
    <select ng-model="row.field.type" ng-options="column.type as column.title for column in columns" ng-change="resetRow(row.field)"></select>
</td>

并在控制器中定义$scope.resetRow以根据字段类型重置其他属性。

以下是更新后的plunker

  

我希望在ng-options中有一个功能来返回副本   选择的对象而不是对象引用来解决您的问题。