gpt4 book ai didi

javascript - 如何更改 AngularJS 中二维数组的属性?

转载 作者:行者123 更新时间:2023-12-01 03:42:34 25 4
gpt4 key购买 nike

所以我有一个动态表,我需要跟踪它的几个属性。我使用 angularJS 来执行此操作,并使用 2D 对象数组来跟踪表的元素。

我的代码如下所示:

$scope.table = [];
$scope.generateTable = function(){
var table = [[], []];
for (var i = 0; i < $scope.height; i++) {
$scope.table[i] = []
for (var j = 0; j < $scope.width; j++) {
$scope.table[i].push({
display: 'X',
alive: false
});
}
}
}

$scope.changeProp = function(x, y){
$scope.table[x][y].alive = !$scope.table[x][y].alive;
$scope.table[x][y].alive ? $scope.table[x][y].display = 'O' : $scope.table[x][y].display = 'X';
}

但每当我尝试运行changeProp()函数时,它都会说“无法读取未定义的属性”。元素按其应有的方式存在于数组中,并在前端正确显示,为什么我不能使用语法 arr[][] 更改函数中的元素?

编辑:经过进一步审查,问题似乎在于宽度没有正确传递给changeProp。前端代码如下:

<tr ng-repeat="x in table">
<td ng-repeat="y in x track by $index" align="center" ng-click="changeProp($parent.index, $index)">
{{ y.display }}
</td>
</tr>

最佳答案

您以错误的方式传递了父索引。

Edit $parent.index to $parent.$index.

<tr ng-repeat="x in table">
<td ng-repeat="y in x track by $index" align="center" ng-click="changeProp($parent.$index, $index)">
{{ y.display }}
</td>
</tr>

关于javascript - 如何更改 AngularJS 中二维数组的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43765369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com