Angularjs 是否可以将函数分配给变量,然后用作用域触发它?
我有一个分配给变量的函数。然后我将这个变量赋值给Angularjs 是否可以将函数分配给变量,然后用作用域触发它?,angularjs,Angularjs,我有一个分配给变量的函数。然后我将这个变量赋值给$scope,希望它能调用这个函数。但它不起作用: var func = myFunction("argument"); $scope.func; 我还尝试: var func = myFunction("argument"); $scope[func]; 有什么方法可以让它工作吗?您缺少一些东西: var someFn = function (arg) { //do something with arg
$scope
,希望它能调用这个函数。但它不起作用:
var func = myFunction("argument");
$scope.func;
我还尝试:
var func = myFunction("argument");
$scope[func];
有什么方法可以让它工作吗?您缺少一些东西:
var someFn = function (arg) {
//do something with arg
}
然后可以将此函数添加到作用域:
$scope.fnOnScope = someFn;
然后,您可以执行以下功能:
$scope.fnOnScope("argument");
或者,您可以首先将函数放在作用域上。您缺少一些东西:
var someFn = function (arg) {
//do something with arg
}
然后可以将此函数添加到作用域:
$scope.fnOnScope = someFn;
然后,您可以执行以下功能:
$scope.fnOnScope("argument");
或者,您可以首先将函数放在作用域上。这听起来有点危险(评估函数以“动态”执行),但假设这是您想要的,那么将函数放在对象上应该相当容易
var availableFunctions = {
functionToCall: function(arg) {
console.log(arg);
}
};
var func = myFunction("argument"); // assume this returns "functionToCall"
$scope.func = availableFunctions[func];
这是否更接近您所寻找的内容?这听起来有点危险(评估函数以“动态”执行),但假设这正是您想要的,将函数放置在对象上应该相当容易
var availableFunctions = {
functionToCall: function(arg) {
console.log(arg);
}
};
var func = myFunction("argument"); // assume this returns "functionToCall"
$scope.func = availableFunctions[func];
这与您要查找的更接近吗?如果
func
是已在窗口范围中声明的函数的名称。尝试:
var func = myFunction("argument");
window[func].call($scope);
如果
func
是窗口范围中已声明的函数的名称。尝试:
var func = myFunction("argument");
window[func].call($scope);
我在提出问题时犯了一些错误。变量
func
分配给文本,而不是函数。但是,此文本表示一个函数。这就是为什么我想把它分配给$scope
。哦,我明白了。所以,func被分配了一个字符串值,它是一个函数的名称,对吗?如果此函数位于作用域上,则可以使用$scope[func]()执行它;要执行的功能必须在这项工作的范围内定义。我在制定问题时犯了一些错误。变量func
分配给文本,而不是函数。但是,此文本表示一个函数。这就是为什么我想把它分配给$scope
。哦,我明白了。所以,func被分配了一个字符串值,它是一个函数的名称,对吗?如果此函数位于作用域上,则可以使用$scope[func]()执行它;必须在此工作范围内定义要执行的功能。