Javascript 将函数赋值给变量angularjs
我想基于变量动态调用函数,例如,变量有函数名Javascript 将函数赋值给变量angularjs,javascript,angularjs,Javascript,Angularjs,我想基于变量动态调用函数,例如,变量有函数名 var fun =function1(1,2) 有时变量后的乐趣会有作用 fun= function2(2,3) 这只是一个例子来解释我的情况 然后我想从我的html中调用它 html <button ng-click="{{fun}}>call</button> 如果要访问变量,请不要使用{{}。只需使用变量名 function foo() { console.log("executing foo"); }
var fun =function1(1,2)
有时变量后的乐趣会有作用
fun= function2(2,3)
这只是一个例子来解释我的情况
然后我想从我的html中调用它
html
<button ng-click="{{fun}}>call</button>
如果要访问变量,请不要使用{{}。只需使用变量名
function foo() {
console.log("executing foo");
}
$scope.fun = foo;
<button ng-click="fun()">call</button>
函数foo(){
log(“执行foo”);
}
$scope.fun=foo;
呼叫
因为函数在JavaScript中是一流的公民,所以我们可以像传递任何其他变量一样传递它们
请参见当您单击更改处理程序
时交替选择f1
和f2
的示例
HTML
<body ng-app="exampleApp" ng-controller="appCtrl">
<div>
<h3>{{name}}</h3>
<br>
<button type="button" class="btn btn-primary" ng-click="fun()">Show Name</button>
<button type="button" class="btn btn-primary" ng-click="changeClick()">
Change Handler
</button>
<br>
<h3 ng-show="clicked">You did it {{name}}</h3>
</div>
</body>
在上面的示例中,changeClick
交替使用fun
如果要访问变量,请不要使用{{}。只要使用变量名,如果函数也有参数呢?没问题——不管它们是否有参数,您仍然会以相同的方式更改它们。只要确保在ng单击中调用函数时传入参数即可。例如ng单击=“fun(param1,param2)”
var app = angular.module('exampleApp', []);
app.controller('appCtrl', function($scope){
function f1() {
$scope.name = "Chris";
}
function f2() {
$scope.name = "Harry";
}
$scope.fun = f1;
$scope.changeClick = function() {
if($scope.fun === f1) {
$scope.fun = f2;
} else {
$scope.fun = f1;
}
};
$scope.name = "Default";
});