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