在 ngrepeat 中使用 onclick

Posted

技术标签:

【中文标题】在 ngrepeat 中使用 onclick【英文标题】:Using onclick in ngrepeat 【发布时间】:2020-06-07 20:06:29 【问题描述】:

有没有办法使用ng-repeat 中的onclick 事件来调用jQuery 函数?

HTML:

<table>
    <tr ng-repeat="item in items">
        <td><a onclick="loadEditModal(item.Id)">Edit</a></td>
    </tr>
</table>

jQuery:

function = loadEditModal() 
    alert("yes");
;

【问题讨论】:

检查一下,希望对你有帮助related issue 检查这个相关问题,希望对***.com/questions/21877008/…有帮助 【参考方案1】:

您应该为此使用 angularjs ng-click:(https://docs.angularjs.org/api/ng/directive/ngClick)

<table>
    <tr ng-repeat="item in items">
    <td><a ng-click="loadEditModal(item.Id)">Edit</a></td>
    </tr>
</table>

编辑: 要从外部 js 文件中调用函数(这不是一个好习惯!),您可以像上面一样使用 ng-click,然后从 angularjs 控制器的函数中调用外部方法,如下所示:

loadEditModal () 

    var modalFunc = window["loadEditModal"];
    modalFunc();

;

【讨论】:

我不想使用 ng-click 我需要触发jquery函数 好的,我用另一个解决方案进行了编辑,但这是一个非常糟糕的做法【参考方案2】:

我猜你不必使用ng-click

在这种情况下,您可以直接从on-click 调用Jquery/javascript 函数,但是有一个问题是您无法在该函数中绑定item.id 值。所以你必须以 格式将值传递给loadEditModal 函数:

<a onclick="loadEditModal(item.Id)">Edit</a>

<script>
  function loadEditModal (id) 
  console.log(id)

</script>

【讨论】:

以上是关于在 ngrepeat 中使用 onclick的主要内容,如果未能解决你的问题,请参考以下文章

模型更改后ngRepeat不更新

可使用 ngrepeat 编辑:自动编辑最新添加的项目

AngularJS - 使用 ngRepeat 的下拉菜单

如何在 ngRepeat-ed 元素上使用 ngAnimate?

将自定义元素添加到 ngRepeat 列表

如何在 Angular 中获取过滤后的 ngRepeat 数组的长度?