在AngularJS中调用变量函数

时间:2013-04-25 05:14:17

标签: javascript jquery angularjs

在我的app.js我定义了这样的函数:

var func1 = function(v1,v2,v3) {
  .
  .
}

var func2 = function(v1,v2,v3) {
  .
  .
}

在我的controller.js

var action = "";

if(..) { action = 'func1';}
else {action = 'func2'}

action(a1,a2,a3);

然而,我收到一个错误,说行动不是一个功能。如何像这样访问func1和func2``?

2 个答案:

答案 0 :(得分:4)

尝试删除引号,例如,更改:

if(..) { action = 'func1';}
else {action = 'func2'}

if(..) { action = func1;}
else {action = func2;}

添加了: 当您为func1添加引号时,您将字符串分配给您的操作变量,您可以检查它是否正在执行:

var func1 = function(v1,v2,v3) {
  alert("first");
};
var test_this = func1;
console.log( typeof test_this); //gives you function

其中

var test_this = 'func1'; //with quotes added
console.log( typeof test_this); //gives you string

答案 1 :(得分:1)

您正尝试从字符串访问该函数。我不是专家,但你可以试试

if (..) {
    func1(a1, a2, a3);
} else {
    func2(a1, a2, a3);
}