从窗口本地化按钮

时间:2013-06-05 16:33:30

标签: extjs extjs4.2

可能是一个愚蠢的问题,但我现在真的不知道,我需要做些什么来本地化一个窗口中的按钮我刚重新定义和创建。一世  使用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是我需要调用的函数,用她的逻辑提交窗口中的值。 这是我需要做的,但我要求所有其他方式来做到这一点。

2 个答案:

答案 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');
     }
});

And here is a fiddle