在angularjs中获取ng-click函数中元素的属性

我有一个像下面这样的span标签,当点击时在控制器中调用一个函数。

HTML

<div class="row" ng-repeat="event in events"> <div class="col-lg-1 text-center"> <span class="glyphicon glyphicon-trash" data={{event.id}} ng-click="deleteEvent()"> </span> </div> </div> 

调节器

 $scope.deleteEvent=function(){ console.log(this); } 

我需要在控制器函数中获取data属性中的值。 我尝试使用这个关键字和$事件; 没有人工作。

请帮忙。

尝试直接传递给ng-click函数:

 <div class="col-lg-1 text-center"> <span class="glyphicon glyphicon-trash" data="{{event.id}}" ng-click="deleteEvent(event.id)"></span> </div> 

那么它应该在您的处理程序中可用:

 $scope.deleteEvent=function(idPassedFromNgClick){ console.log(idPassedFromNgClick); } 

这是一个例子

更简单的是,将$event对象传递给ng-click来访问事件属性。 举个例子:

 <a ng-click="clickEvent($event)" class="exampleClass" id="exampleID" data="exampleData" href="">Click Me</a> 

在你的clickEvent() = function(obj) {}函数中,你可以像这样访问data值:

 var dataValue = obj.target.attributes.data.value; 

哪个会返回exampleData

这是一个完整的jsFiddle 。

除Brett DeWoody的答案之外(现在更新)

 var dataValue = obj.srcElement.attributes.data.nodeValue; 

在IE(9+)和Chrome中工作正常,但Firefox不知道srcElement属性。 我发现:

 var dataValue = obj.currentTarget.attributes.data.nodeValue; 

适用于IE,Chrome和FF,我没有testingSafari。