更新表的AngularJS模型将插入新单元格并删除另一个单元格
今天我在AngularJS上遇到了一个有趣的问题,我想我会发布: 在我的应用程序中,我有一个模型,从中我使用ng repeat创建了一个HTML表,此外,我还有一个与另一个模型绑定的输入字段,并且我已经向该模型注册了一个watch函数。当我在输入字段中输入一些文本时,函数会将该文本写入表中当前选定的单元格 函数完成后,发生了一些事情。不是更新选定单元格的值,而是在当前位置插入一个新单元格,单元格向右移动,最后一个单元格从行中删除。很明显,我希望单元格保持其当前位置,并且只更新子元素 下面是我的代码的一个简短示例。模型:更新表的AngularJS模型将插入新单元格并删除另一个单元格,angularjs,Angularjs,今天我在AngularJS上遇到了一个有趣的问题,我想我会发布: 在我的应用程序中,我有一个模型,从中我使用ng repeat创建了一个HTML表,此外,我还有一个与另一个模型绑定的输入字段,并且我已经向该模型注册了一个watch函数。当我在输入字段中输入一些文本时,函数会将该文本写入表中当前选定的单元格 函数完成后,发生了一些事情。不是更新选定单元格的值,而是在当前位置插入一个新单元格,单元格向右移动,最后一个单元格从行中删除。很明显,我希望单元格保持其当前位置,并且只更新子元素 下面是我的代
//The model is initialized with empty strings, later the input is supplied by the user
$scope.master.rows = [["", "", ""], ["", "", ""], ["", "", ""]];
HTML代码段:
<table ng-model="master.rows">
<tr ng-repeat="row in master.rows">
<td ng-repeat="col in row"
ng-click="master.click($event.target)">{{ col }}</td>
</tr>
</table>
事实证明,这种行为是因为我直接向模型对象写入数据。因此,我稍微修改了模型以包含对象,并将值写入对象成员。新模型如下所示:
$scope.master.rows = [[{value: ""}, {value: ""}, {value: ""}],
[{value: ""}, {value: ""}, {value: ""}],
[{value: ""}, {value: ""}, {value: ""}]
];
在HTML代码段中,我将表达式更改为:
<td ng-repeat="col in row" ng-click="master.click($event.target)">{{ col.value }}</td>
<td ng-repeat="col in row" ng-click="master.click($event.target)">{{ col.value }}</td>
$scope.master.rows[y][x].value = value;