angularjs - obtener el elemento original de ng-clic
ng click angular 6 (2)
Necesita $event.currentTarget
lugar de $event.target
.
Tengo una lista de elementos en mi vista con ng-click
adjunto a ellos:
<ul id="team-filters">
<li ng-click="foo($event, team)" ng-repeat="team in teams">
<img src="{{team.logoSmall}}" alt="{{team.name}}" title="{{team.name}}">
</li>
</ul>
Estoy manejando los eventos de clic en la función foo
en mi directiva, pasando $event
como una referencia al objeto en el que se ha hecho clic, pero obtengo una referencia a la etiqueta img
, en lugar de la etiqueta li
. Entonces tengo que hacer cosas como esta para obtener el 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
}
})();
¿Hay una forma sencilla de obtener la referencia al elemento al que está vinculado ng-click
, sin realizar operaciones DOM en mi directiva?
No es una respuesta directa a esta pregunta, sino más bien al "problema" de $event.currentTarget
aparentemente se establece en nulo.
Esto se debe al hecho de que console.log muestra objetos mutables profundos en el último estado de ejecución, no en el estado en que se llamó a console.log.
Puede verificar esto para obtener más información: las llamadas consecutivas a console.log producen resultados inconsistentes