我的 Angular Controller 如下所示:
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>
在应用程序路由到不同 View 之前弹出警报,这正是我想要的。但当它出现时,警报框是空的。我怎样才能让它读取被点击链接的ID(即'testID')?
最佳答案
只是作为快速答案发布,您可以使用 event.currentTarget 而不是 event.target 来获取绑定(bind)注册的元素。在这种情况下,ng-click 绑定(bind)到您应用它的元素,因此您应该获取该元素。正如评论中提到的,这是一种非典型的方式,因为它将 Controller 与 DOM 联系在一起,这意味着 Controller 无法独立于特定 DOM 进行测试或使用(破坏了可测试性)。
关于javascript - AngularJS 中获取点击元素的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854803/