Javascript 根据变量使ng click调用某个方法
我有一个Javascript 根据变量使ng click调用某个方法,javascript,angularjs,Javascript,Angularjs,我有一个ng点击,我需要根据变量调用4个方法中的一个。我在页面上显示某些内容,这取决于我称之为{{vm.class}}的内容,例如可以是单词组。取决于它是否是Group,我想调用方法createGroup()。因此,如果{{vm.class}}等于Project,我希望ng单击调用createProject()。我不确定什么是实现这一目标的最佳方式。这基本上就是我希望发生的事情,尽管我知道这不起作用: data ng click=vm.create{{{vm.class}}}()它将调用crea
ng点击
,我需要根据变量调用4个方法中的一个。我在页面上显示某些内容,这取决于我称之为{{vm.class}}
的内容,例如可以是单词组
。取决于它是否是Group
,我想调用方法createGroup()
。因此,如果{{vm.class}}
等于Project
,我希望ng单击
调用createProject()
。我不确定什么是实现这一目标的最佳方式。这基本上就是我希望发生的事情,尽管我知道这不起作用:
data ng click=vm.create{{{vm.class}}}()
它将调用createGroup()
或createProject()
编辑:
比如:
datang单击=“创建(vm.class)”
然后:
function create(class){
switch(class){
case Group
createGroup();
}
etc....
}
我建议将逻辑保留在控制器中。也就是说,
ngClick
应该调用控制器中的常规函数,该函数将根据其他参数决定调用哪个函数
HTML:
比如:
datang单击=“创建(vm.class)”
如果将create
方法添加到$scope
或者稍加修改:
data-ng-click="vm.create(vm.class)"
及
甚至没有像这样的通用创建函数
data-ng-click="vm['create'+vm.class]()"
哈哈,我忍者编辑同样的东西。好吧,我就是这么想的。我给你一个+酷:)我认为这是最好的方式,我认为
vm['create'+vm.class]()
是一个好主意,但是错误prone@yarons,什么错误?比如当vm
不包含函数'create'+vm.class?@yarons时,在这种情况下,什么都不做,所以用户不会看到异常或类似的情况
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]()"