首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给变量角函数赋值

问给变量角函数赋值
EN

Stack Overflow用户
提问于 2018-01-08 07:42:57
回答 2查看 5K关注 0票数 0

我希望基于变量动态调用函数,并且变量具有函数名,例如

代码语言:javascript
复制
var fun =function1(1,2)

有时在变量之后,可以有功能

代码语言:javascript
复制
fun= function2(2,3)

这只是一个例子来解释我的场景

然后我想从html中调用它

html

代码语言:javascript
复制
<button ng-click="{{fun}}>call</button>

有时乐趣可以有function1和function2

EN

回答 2

Stack Overflow用户

发布于 2018-01-08 07:57:39

因为函数在JavaScript中是一流的公民,所以我们可以像传递任何其他变量一样传递它们。

请参阅这个JSFiddle示例,该示例在单击Change Handler时交替使用f1和f2。

代码语言:javascript
复制
<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

代码语言: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的值。

票数 1
EN

Stack Overflow用户

发布于 2018-01-08 07:56:19

如果要访问变量,请不要使用{{}}。只需使用变量名

代码语言:javascript
复制
function foo() {
    console.log("executing foo");
}

$scope.fun = foo;

<button ng-click="fun()">call</button>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48146067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档