Dojo按钮以编程方式创建作用域问题
亲爱的各位, 我通过编程创建了一个新的Dojo按钮。我在我的一个自定义dojo类中这样做。在创建按钮时,我定义了一个onClick方法,单击按钮时应该调用该方法。此方法是类的一部分。我无法调用该方法,因为当单击按钮时,该方法的范围不同。有人能帮我修一下吗Dojo按钮以编程方式创建作用域问题,dojo,scope,dijit.form,Dojo,Scope,Dijit.form,亲爱的各位, 我通过编程创建了一个新的Dojo按钮。我在我的一个自定义dojo类中这样做。在创建按钮时,我定义了一个onClick方法,单击按钮时应该调用该方法。此方法是类的一部分。我无法调用该方法,因为当单击按钮时,该方法的范围不同。有人能帮我修一下吗 dojo.declare("CustomClass",null,{ createCustomButton:function(){ var button = new dijit.form.Button({onClick:function(){
dojo.declare("CustomClass",null,{
createCustomButton:function(){
var button = new dijit.form.Button({onClick:function(){
removetrack();
testDataGrid.filter({status:"COMPLETED"});
}},"testButton1");
},
removetrack:function(){
//some logic
}
});
var customObj=new CustomClass();
customObj.createCustomButton();
我需要在单击“已创建”按钮时调用removetrack方法。如果您需要紧急修复,我无法找到更好的方法
var button = new dijit.form.Button({
label: "Custom!",
onClick:function(){
CustomClass().removetrack();
}},"result");
希望有人能给你更好的选择。使用dojo.hitch
dojo.declare("CustomClass",null,{
createCustomButton:function(){
var button = new dijit.form.Button({
onClick:dojo.hitch(this, function(){
this.removetrack();
testDataGrid.filter({status:"COMPLETED"});
})
},"testButton1");
},
removetrack:function(){
//some logic
}
});
var customObj=new CustomClass();
customObj.createCustomButton();
您的问题不清楚您希望调用removetrack的范围。我将在下面回答,假设这是createCustomButton中的范围,但如果这是错误的,请澄清,我将看看是否可以更改我的答案:非常感谢。我想我们需要用这个。removetrack。不,那不行。看起来CustomClass函数附带了一个removetrack函数。