我有一个分配给变量的函数。然后我将此变量赋值给$scope
,希望它将调用该函数。但它不起作用:
var func = myFunction("argument");
$scope.func;
我也尝试过:
var func = myFunction("argument");
$scope[func];
我有办法让这个工作吗?
答案 0 :(得分:4)
你遗失了一些东西:
var someFn = function (arg) {
//do something with arg
}
然后,您可以将此功能添加到范围:
$scope.fnOnScope = someFn;
然后您可以执行以下功能:
$scope.fnOnScope("argument");
或者,您可以首先将该功能放在示波器上。
答案 1 :(得分:0)
这听起来有点危险(评估“动态”执行的功能),但假设这是你想要的,如果你把功能放在一个对象上应该相当容易。
var availableFunctions = {
functionToCall: function(arg) {
console.log(arg);
}
};
var func = myFunction("argument"); // assume this returns "functionToCall"
$scope.func = availableFunctions[func];
那更接近你想要的吗?
答案 2 :(得分:0)
如果func
是已在窗口范围内声明的函数的名称。尝试:
var func = myFunction("argument");
window[func].call($scope);