【问题标题】:Using onclick in ngrepeat在 ngrepeat 中使用 onclick
【发布时间】: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");
};

【问题讨论】:

标签: jquery angularjs angularjs-ng-repeat


【解决方案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>

【讨论】:

    猜你喜欢
    • 2015-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 2021-01-16
    • 2013-04-17
    相关资源
    最近更新 更多