Получить исходный элемент из ng-click

У меня есть список элементов в моем представлении с прикрепленным к ним ng-click:

<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>

Я обрабатываю события click в функции foo в моей директиве, передавая $event в качестве ссылки на объект, который был нажат, но я получаю ссылку на тег img, а не тег li. Затем мне нужно сделать такие вещи, чтобы получить 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
       }
   })();

Есть ли простой способ получить ссылку на элемент, к которому привязан ng-click, без выполнения операций DOM в моей директиве?

Ответ 1

Вам нужно $event.currentTarget вместо $event.target.

Ответ 2

Не прямой ответ на этот вопрос, а скорее вопрос "проблема" $event.currentTarget, по-видимому, установлен в null.

Это связано с тем, что console.log показывает глубокие изменяемые объекты в последнем состоянии выполнения, а не в состоянии, когда вызывалась console.log.

Вы можете проверить это для получения дополнительной информации: Последовательные вызовы console.log создают противоречивые результаты