在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。