在AngularJS中获取被点击元素的ID

时间:2014-11-10 23:13:56

标签: javascript jquery angularjs

My Angular控制器如下所示:

angular.module('spark')
    .controller('MainCtrl', ['$scope', '$location', function ($scope,$location) {
        $scope.handleThisElement = function (event) {
            alert(event.target.id);
        }
        $scope.changeView = function(view){
            $location.path(view);
        }
    }]);

我的HTML看起来像这样:

<a id="testID" href="" ng-click="handleThisElement($event); changeView('panel3')">
...
</a>

在应用程序路由到不同视图之前弹出警报,这就是我想要的。但是当它出现时,警告框是空的。如何让它读取点击链接的ID(即'testID')?

1 个答案:

答案 0 :(得分:1)

只是作为快速回答发布,您可以使用event.currentTarget而不是event.target来获取绑定已注册的元素。在这种情况下,ng-click会绑定到您应用它的元素,因此您应该获得该元素。正如评论中所提到的,这是一种非典型的方式,因为它将Controller与DOM联系起来,这意味着Controller无法独立于特定的DOM进行测试或使用(打破可测试性)。