2013-04-25 198 views
0

变量函数在我app.js我已经定义的函数是这样的:呼叫在AngularJS

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``?

+3

尝试'action = func1 ... action = func2' – 2013-04-25 05:15:43

+0

@ JanDvorak- Works!谢谢 – 2013-04-25 05:19:54

回答

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 

where as

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

Works ..谢谢你..你能解释为什么它是这样吗?在正常的JavaScript我们实际上使用''。 – 2013-04-25 05:20:40

+0

@BhumiSinghal引号表示一个字符串。看来'行动'想要一个功能。 – 2013-04-25 05:21:50

+0

@JanDvorak - 哦!我实际上是在思考JavaScript的基础上。:) – 2013-04-25 05:23:44

1

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

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

实际上这是类似编程的基础知识,但我不能这样做。我需要使用var来访问。谢谢 – 2013-04-25 05:19:25