Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数赋值给变量angularjs_Javascript_Angularjs - Fatal编程技术网

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";
});