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

我在我的指令中处理foo函数中的click事件,传递$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操作?

您需要$event.currentTarget而不是$event.target

不是这个问题的直接答案,而是$event.currentTarget的“问题”显然被设置为null。

这是由于console.log在最后一个执行状态下显示深层可变对象,而不是在调用console.log时的状态。

您可以检查以获取更多信息: 连续调用console.log会产生不一致的结果