这应该很简单。出于某种原因,当在ng-repeat中使用ng-model时,它会更新重复循环内的所有ng-model。
这是代码。有任何想法吗? http://plnkr.co/edit/iAgrPwwBMilCyeReeLt9?p=info
感谢。
答案 0 :(得分:0)
有趣!!!
问题是您正在使用“$ scope.columns”
中的对象重置row.fieldin
<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中有一个功能来返回副本 选择的对象而不是对象引用来解决您的问题。