可能是一个愚蠢的问题,但我现在真的不知道,我需要做些什么来本地化一个窗口中的按钮我刚重新定义和创建。一世 使用extjs 4.2.1并且我生成了一种mvc,但更类似于使用这种类型框架的旧方法。
我必须定义一个窗口,其中有两个按钮'submit'和'close',如下所示:
Ext.define('newWindow',{
extend:'Ext.window.Window',
config: {
submitFn:function(){return null;}
}
bodyStyle: 'padding: 5px 5px 0',
layout:'fit',
width:460,
height:390,
plain: false,
border:false,
resizable: false,
buttons: [{
text:'submit',
handler: function(){this.up.up.submitFn()},
tabIndex:1000
},{
text: 'close',
handler: function(){
this.up().up().hide();},
tabIndex:1001
}]
})
当我在我的代码中创建此窗口时,我想通过他一个函数来处理他的行为,但我不能.. 我试着把他放在itemId,id但是Ext.getCmp(id),Ext.ComponentQuery.query(id)不能完成他们的工作。
RE-编辑:
好的问题不明确:我以这种方式定义组件newWindow。 我说我不使用mvc模式,在我的程序的一部分中,我就像这里一样创建这个组件;
var dlg = Ext.create('newWindow',{submitFn:submit});
其中submit是我需要调用的函数,用她的逻辑提交窗口中的值。 这是我需要做的,但我要求所有其他方式来做到这一点。
答案 0 :(得分:0)
您可以随时设置窗口config closable:true
,而不是定义自己的按钮。
答案 1 :(得分:0)
我认为你试图获得对按钮的引用的所有方法都不起作用,因为在你调用它们时没有创建按钮。您应该在调用Ext.getCmp
时等待按钮呈现,或者在控制器this.control
方法中使用init
。这是一个例子:
Ext.define('myController', {
extend: 'Ext.app.Controller',
init: function() {
this.control({
'#submitButton': {
click: this.onSubmitButtonClick
}
});
},
onSubmitButtonClick: function() {
console.log('Click');
}
});