我只是问这个,因为我在任何地方都找不到它。
我有一个 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/