javascript - 你能传递一个 Angular 表达式作为实际的 ng-click 函数吗

标签 javascript jquery html angularjs

我只是问这个,因为我在任何地方都找不到它。

我有一个 Angular 对象 column.addOnParams

此对象包含 rowClick 的子元素,因此它将是 column.addOnParams.rowClick

在这个子元素中包含单词myclickevent();

是否可以将其传递给 ng-click

所以会变成下面这样

<td ng-repeat="column in columns" class="" ng-click="column.addOnParams.rowClick"></td>

我已经按照上面的方式尝试过了,但是没有生成任何东西,它只是在页面加载后按原样显示。

我也尝试了以下,

<td ng-repeat="column in columns" class="" ng-click="{{column.addOnParams.rowClick}}"></td>

这会引发 Angular 引用错误,

Syntax Error: Token 'column.addOnParams.rowClick' is unexpected, expecting [:] at column 3 of the expression [{{column.addOnParams.rowClick}}] starting at [column.addOnParams.rowClick}}].

你们有什么建议吗?

将它用于它工作的类对象时的旁注。

<td ng-repeat="column in columns" class="{{column.addOnParams.cssClass}}"></td>

上述语句生成并完美运行。

感谢@J-D 的评论,plunker 解决方案非常有效 Working solution

使用 this 关键字正是我所需要的。

最佳答案

您可以使用$eval 来调用myclickevent()

示例如下:

在你的 Controller 中

$scope.myclickevent = function(rowClick) {
   //your functionality here.
}

假设您在 column.addOnParams.rowClick 中有 myclickevent() 字符串

然后在你的html模板中

<td ng-repeat="column in columns" class="" ng-click="$eval(column.addOnParams.rowClick)"></td>

希望对你有所帮助。

关于javascript - 你能传递一个 Angular 表达式作为实际的 ng-click 函数吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33007620/

相关文章:

javascript - 重新加载页面时如何保持选项卡处于事件状态?

javascript - 为什么 document.write 没有按预期完成

javascript - CSS 首选高度和最大高度

HTML CSS 页脚

iphone - 单选按钮显示不正确

javascript - JQuery 可排序元素不可排序且定位到指针

javascript - 第 4 模式阻止 NavBar 下拉菜单运行?

javascript - Laravel 5.6 中的 HTML 表单出现错误

javascript - Vue js改变和动画元素的位置

javascript - 保存/提交时使用多个选项的 Jquery 自动完成问题