我有以下示例模型:
{
a:{
x:0,
z:0,
f:1
},
b:{
x:"a",
u:"b"
}
}
我将其呈现为两个不同的表
<div class="col-sm-5">
<h1>A</h1>
<table>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
<tr ng-repeat="(key,value) in schema.a">
<td>
<input type="text" ng-model="key" required>
</td>
<td>
<input type="text" ng-model="value" required>
</td>
<td></td>
</tr>
</table>
</div>
<div class="col-sm-5 col-md-offset-2">
<h1>B</h1>
<table>
<tr>
<th>Key</th>
<th>Value</th>
</tr>
<tr ng-repeat="(key,value) in schema.b">
<td>
<input type="text" ng-model="key" required>
</td>
<td>
<input type="text" ng-model="value" required>
</td>
<td></td>
</tr>
</table>
</div>
这些表是动态的,这意味着我可以向其中添加新行。
现在,当我更改表格中的任何值时,它们未与模型同步 - &gt;无法编辑
答案 0 :(得分:3)
首先,您无法动态更改对象属性名称或key
。所以你试图用ng-model="key"
做什么只是简单地工作。
至于value
部分,您应该在ng-model
<tr ng-repeat="(key,value) in schema.b">
<td>{{key}}</td>
<td>
<input type="text" ng-model="schema.b[key]" required>
</td>
<td></td>
</tr>
如果您需要能够编辑key
,那么您需要将数据结构更改为对象数组,每个对象具有相同的键属性名称