我正在寻找一个上下文菜单指令,它可以告诉我实际点击了什么,以便我可以对它作出反应。
正在玩this,但该模块的问题在于我无法弄清楚如何唯一地识别被点击的元素。所以我可以对它做正确的逻辑:
我需要一些可以传递给回调函数的东西
控制器:
$scope.items.Data = [{Code:'row1', Name:'Name1'},{Code:'row2', Name:'Name2'}]
$scope.items.Actions = [
{
Code: 'Action1',
Name: 'First action'
},
{
Code: 'Action2',
Name: 'Second action'
}
]
var actionList = [];
for (var i = 0; i < $scope.items.Actions.length; i++) {
actionList.push($scope.items.Actions[i].Name, function ($itemScope,$event) {
console.log('Action executed', $scope.objectId, $itemScope,$event,$itemScope.$index);
// Need access to $scope.items.Actions[i].Code or at least the index of the array
});
}
$scope.contextOptions = actionList;
HTML:
<table>
<thead>
<tr>
<td>Code</td>
<td>Name</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in items.Data" context-menu="contextOptions">
<td>{{row.Code}}</td>
<td>{{row.Name}}</td>
</tr>
</tbody>
</table>
答案 0 :(得分:1)
我正在使用相同的东西,并且在进行索引时没有任何问题。 而不是使用
for (var i = 0; i < $scope.items.Actions.length; i++) {}
将其更改为
$scope.items.Actions.forEach(function(action, index){
actionList.push(action.Name, function ($itemScope,$event) {
console.log('Action executed', $scope.objectId, $itemScope,$event,index);
});
})
如果您正在寻找,请告诉我。