javascript - AngularJS 中获取点击元素的 ID

标签 javascript jquery angularjs

我的 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/

相关文章:

javascript - 像按钮动画这样的单个帖子有效,但多个帖子意味着第一个帖子按钮仅有效

javascript - 如何在 d3 中使用序号来返回月份名称

jquery - 无法在 WordPress 主题中找到 CSS

javascript - 调整无序列表上聊天气泡的大小

javascript - $scope 数组上的 Ionic App LocalStorage

javascript - IONIC2 - ionic 服务时出现语法错误

javascript - 为什么我不能禁用ajaxToolkit :AsyncFileUpload

javascript - 有没有办法测量页面加载的内容并显示其百分比?

javascript - 如何在没有提交按钮的情况下从输入类型文本中保存数据

angularjs - Angular - 如何避免在更改搜索时添加历史记录?