我希望基于变量动态调用函数,并且变量具有函数名,例如
var fun =function1(1,2)有时在变量之后,可以有功能
fun= function2(2,3)这只是一个例子来解释我的场景
然后我想从html中调用它
html
<button ng-click="{{fun}}>call</button>有时乐趣可以有function1和function2
发布于 2018-01-08 07:57:39
因为函数在JavaScript中是一流的公民,所以我们可以像传递任何其他变量一样传递它们。
请参阅这个JSFiddle示例,该示例在单击Change Handler时交替使用f1和f2。
<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>JavaScript
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";
});在上面的示例中,changeClick交替使用fun的值。
发布于 2018-01-08 07:56:19
如果要访问变量,请不要使用{{}}。只需使用变量名
function foo() {
console.log("executing foo");
}
$scope.fun = foo;
<button ng-click="fun()">call</button>https://stackoverflow.com/questions/48146067
复制相似问题