【发布时间】:2015-01-01 13:23:25
【问题描述】:
我想使用 angularjs 在基于多维数组 [matrix] 的输入表单上显示和绑定值。这是我用来生成数组和变量以保存结果的js函数
function getMatrix(rows, cols, defaultValue){
var arr = new Array(rows);
for (var i = 0; i < rows; i++) {
arr[i] = new Array(cols);
for (var j = 0; j < cols ; j++) {
if(defaultValue !== null){
arr[i][j] = defaultValue;
}
else{
arr[i][j] = {"value":i+"-"+j};
}
};
};
return arr;
}
$scope.data = getMatrix(3,3,getMatrix(2,3,null));
这是显示数据的html表格
<table>
<tr ng-repeat="row in data">
<td ng-repeat="cell in row track by $index">
<table>
<tr ng-repeat="deepRow in cell">
<td ng-repeat="deepCell in deepRow track by $index">
<input type="text" style="width: 20px;" ng-model="deepCell.value">
</td>
</tr>
</table>
</td>
</tr>
</table>
当我在正常的 n x n 数组中显示和绑定时,一切正常,但是当我尝试创建和绑定嵌套多维数组时,它无法按预期工作。当我改变深度数组中的值时,同一行的值也会改变。
这是 plunker 上的代码。 Multidimensional Array Binding
我在这里遗漏了什么吗?
【问题讨论】:
标签: angularjs matrix data-binding