角度ng-click属性的动态变量

时间:2014-03-11 00:54:50

标签: javascript angularjs

我使用以下方法将$ 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

改变了什么?如何在当前角度版本中使用上述语法?

2 个答案:

答案 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