Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取angularjs中ng click函数中元素的属性_Javascript_Angularjs - Fatal编程技术网

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

Javascript 获取angularjs中ng click函数中元素的属性,javascript,angularjs,Javascript,Angularjs,我有一个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&

我有一个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>
我需要在controller函数中获取data属性中的值。我尝试使用这个关键字和$event;两个人都没有工作


请提供帮助。

尝试将其直接传递到ng click功能:

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

这里有一个更简单的方法,将
$event
对象传递给
ng单击
访问事件属性。例如:

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


以下是对Brett DeWoody答案的补充:(现在更新)

在IE(9+)和Chrome中运行良好,但Firefox不知道srcElement属性。 我发现:


在IE、Chrome和FF中工作,我没有测试Safari。

实际上,整个div都包含在ng repeat中。因此,我无法在ng click中使用event.id。我想。请查看我刚才添加到我的答案中的JSFIDLE链接,以获取使用参数来
ngClick
ngRepeat
中的示例,非常感谢。我昨天确实试过了,花了3个多小时。它不起作用。我可能犯了一些错误。不管怎样,现在它工作了,谢谢你的小提琴。这很有帮助。谢谢。这真的很有帮助!您的JSFIDLE在Chrome中运行良好,但在FireFox中运行不好?谢谢您的关注。我已经使用
obj.target
为JSFIDLE提供了一个更好的解决方案。我发现您可以执行
obj.target.getAttribute(“数据”)
在我看来更具可读性,js FIDLE在这里:请注意,如果您有一个自定义数据属性,例如
数据示例attr=“无论什么”
那么你需要在JS中这样引用它:
obj.toElement.dataset.exampleAttr
@carmat的解决方案似乎对FF不起作用(虽然对Chrome有效),functional rocking的obj.target.getAttribute(“数据示例attr”)对我和Chrome&FF都起作用。谢谢Michiel。我已经更新了JSFIDLE来解决这个问题。我现在正在使用更通用的
obj.target
属性来获取属性。是的,Brett,我同意最好使用target,更新我的代码,谢谢!
$scope.deleteEvent=function(idPassedFromNgClick){
    console.log(idPassedFromNgClick);
}
<a ng-click="clickEvent($event)" class="exampleClass" id="exampleID" data="exampleData" href="">Click Me</a>
var dataValue = obj.target.attributes.data.value;
var dataValue = obj.srcElement.attributes.data.nodeValue;
var dataValue = obj.currentTarget.attributes.data.nodeValue;