根据变量进行ng-click调用某种方法

时间:2015-12-02 16:41:16

标签: javascript angularjs

我有ng-click我需要根据变量调用4种方法中的一种。我在页面上显示某些内容取决于我调用{{vm.class}}的内容,例如,可能是单词Group。取决于它是否Group我想要调用方法createGroup()。因此,如果{{vm.class}}等于Project,我希望ng-click致电createProject()。我不确定实现这一目标的最佳方法是什么。这基本上是我想要发生的事情,虽然我知道这不起作用:

data-ng-click=vm.create{{vm.class}}()会调用createGroup()createProject()

修改

类似于:

data-ng-click="create(vm.class)"

然后:

function create(class){
    switch(class){
    case Group
         createGroup();
    }
    etc....
}

2 个答案:

答案 0 :(得分:3)

我建议将逻辑保留在控制器中。也就是说,ngClick应调用控制器中的通用函数,该函数将根据其他参数决定调用哪个函数。

HTML:

<any ng-click="vm.create()"></any>

控制器:

vm.create = function() {
  switch(vm.class) {
    //logic
  }
}

答案 1 :(得分:0)

  

类似于:

     

data-ng-click="create(vm.class)"

如果将create方法添加到$scope

,您可以像这样使用

或稍作修改:

data-ng-click="vm.create(vm.class)"

vm.create = function create(class){
    switch(class){
        case Group
            createGroup();
        }
    etc....
}

或者甚至没有像这样的创建函数

data-ng-click="vm['create'+vm.class]()"