我使用以下方法将$ scope变量(在本例中为{{func}}())用作ng-click
中的函数名。
<button type="button" ng-click="{{func}}()">Call {{func}}</button></pre>
这适用于angularjs-1.2.0rc3。请参阅work plunkr here
来自&gt;的任何未来版本1.2.0rc3抛出此error
改变了什么?如何在当前角度版本中使用上述语法?
答案 0 :(得分:7)
好的首先我不建议使用ng-click 这样的用法,因为angularjs本身不支持这一点,但是如果您仍然想要使用它,这样的方法就是您的解决方案..
<button type="button" ng-click="$eval(functionName)()">...</button>
,其中
$scope.f1 = function() {
...
};
//name of function as a string
$scope.functionName = "f1";
这是您正在寻找的内容,这是您的PLUNKER示例...
答案 1 :(得分:0)
我所做的就是将变量附加到两个变量
<form name="angular" ng-controller="Ctrl">
<button type="button" ng-click="{{scope.func}}()">
Call {{func}}
</button>
<label>Status: {{scope.status}}</label>
http://jsfiddle.net/bebold/TmKLY/1/
我不建议采用这种方式进行动态变量更改,更好的选择是创建一个指令并在模板中进行绑定:
可以找到一个很好的解释HERE。