从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函数中的单击事件,将$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操作?

231035 次浏览

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

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

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

你可以检查这个以获得更多信息:连续调用console.log产生不一致的结果