从ng-click获取原始元素

时间:2014-04-16 11:05:09

标签: angularjs angularjs-directive

我的视图中有一个项目列表,其中附有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操作?

2 个答案:

答案 0 :(得分:303)

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

答案 1 :(得分:13)

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

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

您可以查看此信息以获取更多信息:Consecutive calls to console.log produce inconsistent results