Eu tenho uma lista de itens na minha opinião com o ng-click
anexado a eles:
-
Estou manipulando os events de clique na function foo
na minha diretiva, passando $event
como referência para o object que foi clicado, mas estou recebendo uma referência à tag img
, em vez da tag li
. Eu então tenho que fazer coisas assim para obter o li
:
$scope.foo = function($event, team) { var el = (function(){ if ($event.target.nodeName === 'IMG') { return angular.element($event.target).parent(); // get li } else { return angular.element($event.target); // is li } })();
Existe uma maneira simples de obter a referência para o elemento que ng-click
está vinculado, sem fazer operações DOM na minha diretiva?
Você precisa de $event.currentTarget
vez de $event.target
.
Não é uma resposta direta a esta pergunta, mas sim ao “problema” de $event.currentTarget
aparentemente, ser definido como null.
Isso se deve ao fato de que console.log mostra objects mutáveis profundos no último estado de execução, não no estado em que console.log foi chamado.
Você pode verificar isso para obter mais informações: Chamadas consecutivas para console.log produzem resultados inconsistentes