2016-09-04 5 views
0

Я ищу директиву контекстного меню, которое может сказать мне, что на самом деле было нажато, чтобы я мог реагировать на него.Angularj JS контекстное меню

Играли с 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

Можете ли вы показать немного больше своего кода, включая HTML? – cnorthfield

+0

добавлено больше кода и в основном мне нужно определить действие, которое было нажато – Jester

+0

Где находится свойство 'Data' в' $ scope.items' ?? – cnorthfield

ответ

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); }); })

Позвольте мне знать, если это то, что вы ищете.

+0

Ty был решением моей проблемы – Jester

Смежные вопросы