很抱歉,如果您发现此问题的解决方案很简单或愚蠢。 需要有关此角度部分的建议或解决方案。
我有一个包含数组(“value”)的对象,如下所示。
scope.resp.DefaultData.graphRowData = [
{YName:"Mary", value:[1,4], points:1},
{YName:"Tom", value:[2,5], points:1}
];
我的代码查看器使用此样式呈现数组。
<table>
<tbody>
<tr ng-repeat="rowLabels in resp.DefaultData.graphRowData track by $index">
<th>
<input type="text" value="{{rowLabels.YName}}" ng-model="rowLabels.YName"/>
</th>
<td ng-repeat="value in rowLabels.value track by $index">
<input type="text" ng-model="value"/>
</td>
</tr>
</tbody>
</table>
html查看器会像下面那样渲染:
<table>
<tbody>
<th>Mary</th><td>1</td><td>4</td>
<th>Tom</th><td>2</td><td>5</td>
</tbody>
</table>
现在问我的问题:
该表按照模型显示数据,但如果我尝试使用自定义更新表或编辑值,则不更新模型且值保持不变
例如:Mary有两个标记为1和4的值,如果我尝试将1更改为2和4更改为5,则模型内的数据保持不变而不更新。
有没有办法修复我的代码,或者我应该将数组更改为如下所示的对象数组
value:[{val:1},{val:4}]
等等......对于resp.DefaultData.graphRowData下的其他对象?然后它会工作正常。只是混淆了为什么数组不能在我的代码中使用角度js! :(
答案 0 :(得分:0)
您需要在ng-model
中传递数组的引用而不是值<tr ng-repeat="rowLabels in resp.DefaultData.graphRowData track by $index">
<th>
<input type="text" value="{{rowLabels.YName}}" ng-model="rowLabels.YName"/>
</th>
<td ng-repeat="value in rowLabels.value track by $index">
<input type="text" ng-model="rowLabels.value[$index]"/>
</td>
</tr>
检查此工作plunker