首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在ng-重复中单击元素的属性

如何在ng-重复中单击元素的属性
EN

Stack Overflow用户
提问于 2017-12-04 22:52:27
回答 1查看 100关注 0票数 0

我有一个带有多个数据-*属性的锚标记,这个锚将使用ng-重复多次重复。当单击单个元素时,我想获取属性的值。

我使用JQuery获取属性值,使用$(this).attr(' attribute ')很容易。

但是,这只适用于页面上的一个按钮。当使用ng-重复呈现多个按钮时,此操作不起作用。我假设这是因为多个按钮以相同的属性名称呈现,而jquery不知道如何区分它们。如何获得单击的元素的数据-*属性值?

代码语言:javascript
运行
复制
//JQuery
//Works when only a single editButton is on the page but not when multiple buttons are rendered using ng-repeat
     $('.editButton').on('click', function () {
        var filepath_id = $(this).attr('data-filepath-id');
        var requested_filepath = $(this).attr('data-requested-filepath');
        var requested_filename = $(this).attr('data-requested-filename');
      })


//HTML
//Confirmed that each editButton element has the correct attribute values depending on the item
  tr(ng-repeat='item in vm.items')
    a.editButton.btn.btn-primary(
      data-toggle="modal",
      data-filepath-id="{{item.id}}",
      data-requested-filepath="{{item.requested_filepath}}",
      data-requested-filename="{{item.filename}}",
      href="#editFilepathPopup"
      ) Edit
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-04 23:39:39

觉得我能帮上忙。在angularJS中,事件侦听器是html元素中的一个属性。例子:

代码语言:javascript
运行
复制
ng-repeat = "item in vm.items" ng-click="onClickFunction();"

如果要获取特定项的属性,请将该项作为参数放在事件函数中。

代码语言:javascript
运行
复制
ng-repeat = "item in vm.items" ng-click="vm.onClickFunction(item);"

现在,在您的角度控制器中,您创建了单击函数。在这里,您可以执行更多的逻辑操作,例如将值设置为控制器值。

代码语言:javascript
运行
复制
onClickFunction(itemParam) {
console.log("this is itemParam", itemParam);
var x = itemParam.requested_filepath;
this.x = itemParam.requested_filepath;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47643292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档