在我的控制器中,我有以下参考和单击按钮后调用的一个功能。是否可以构造一个ref方法然后调用它?我只想在一个函数中处理很多情况,我想避免if语句(因为它在项目中是必需的。它应该是通用的)
该类型将作为该函数的参数。
refs : [{
ref : 'saleForm',
selector : 'sale saleform'
}],
init: function () {
this.control({
'salesview #mybutton':{
click : this.onSaleClick
}
});
},
onSaleClick : function(){
//this.getSaleForm().show();//works
var type = "Sale";
var method = "get"+type+"Form()";
this.window = window;
this.window[method]().show();
}
答案 0 :(得分:1)
这应该没有问题。尝试这样的事情:
init: function () {
this.control({
'salesview #mybutton':{
click : function(){
this.onGenericClick("Sale")
}
},
scope: this
});
},
onGenericClick : function(type){
var method = "get"+type+"Form()";
this.window = window;
this.window[method]().show();
}
您必须定义侦听器的范围才能引用this
。这是关于the listener object的文档。您可以只为一个事件传递范围,而不是在this.control
中全局传递范围,如下所示:
this.control({
'salesview #mybutton':{
click: {
fn: function(){
this.onGenericClick("Sale")
},
scope: this
}
}
});