Javascript 使用ng click with ng repeat使表格单元格处于活动状态
问题: 我有一张桌子和一个可点击的Javascript 使用ng click with ng repeat使表格单元格处于活动状态,javascript,html,angularjs,Javascript,Html,Angularjs,问题: 我有一张桌子和一个可点击的。我想要发生的是,当我单击以下任何一个时,它将变为活动状态,但我无法正确执行 DOM <table class="table-position"> <tr ng-repeat="i in [1,2,3]"> <td ng-repeat="j in [1,2,3]" ng-click="selectPosition(j)" ng-class="{active: selectedPosition == j}"&g
。我想要发生的是,当我单击以下任何一个
时,它将变为活动状态,但我无法正确执行
DOM
<table class="table-position">
<tr ng-repeat="i in [1,2,3]">
<td ng-repeat="j in [1,2,3]" ng-click="selectPosition(j)"
ng-class="{active: selectedPosition == j}"></td>
</tr>
</table>
文本渲染
i1-[j1,j2,j3]
i2-[j1,j2,j3]
i3-[j1,j2,j3]
电流输出:这是我单击任何ff时的电流输出:
[i1,j1]、[i2,j1]、[i3,j1]
预期输出:
这是我单击中心时的预期输出
[i2,j2]
我已经尝试通过selectPosition
函数传递数组和对象,但仍然不起作用。不确定我是否做对了
如果有什么不清楚的地方,请告诉我。提前感谢您。我相信您可以让它更漂亮,但在您的旧代码中,$scope.selectedPosition在I的每次迭代中都是相同的,因此每行中的j自然会被激活
$scope.selectPosition = function(i, j){
$scope.selectedPosition = {};
$scope.selectedPosition.i = i;
$scope.selectedPosition.j = j;
}
<table class="table-position">
<tr ng-repeat="i in [1,2,3]">
<td ng-repeat="j in [1,2,3]" ng-click="selectPosition(j)"
ng-class="{active: (selectedPosition.j == j && selectedPosition.i == i)}"></td>
</tr>
</table>
$scope.selectPosition=函数(i,j){
$scope.selectedPosition={};
$scope.selectedPosition.i=i;
$scope.selectedPosition.j=j;
}
<table class="table-position" ng-controller="myCtrl">
<tr ng-repeat="i in [1,2,3]">
<td ng-repeat="j in [1,2,3]" ng-click="selectPosition($parent.$index, $index)"
ng-class="{active: (selectedPosition.parent == $parent.$index && selectedPosition.index == $index )}">{{ j }}</td>
</tr>
</table>
谢谢你真棒!
<table class="table-position" ng-controller="myCtrl">
<tr ng-repeat="i in [1,2,3]">
<td ng-repeat="j in [1,2,3]" ng-click="selectPosition($parent.$index, $index)"
ng-class="{active: (selectedPosition.parent == $parent.$index && selectedPosition.index == $index )}">{{ j }}</td>
</tr>
</table>
var app = angular.module("app", []);
app.controller("myCtrl", function ($scope) {
$scope.selectPosition = function ($parentIndex, $index) {
$scope.selectedPosition = {
parent: $parentIndex,
index: $index
};
}
})