0

可能是一个愚蠢的问题,但我现在真的不知道,我必须做些什么来本地化我刚刚重新定义和创建的窗口中的按钮。我使用 extjs 4.2.1 并生成了一种 mvc,但更类似于使用这种框架的旧方式。

我必须定义一个具有两个按钮“提交”和“关闭”的窗口,如下所示:

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)不做他们的工作。

重新编辑:

好的,问题不清楚:我以这种方式定义组件 newWindow。我说我不使用 mvc 模式,在我的程序的一部分中,我在这里创建了这个组件;

var dlg = Ext.create('newWindow', {submitFn: submit});

submit 是我需要调用的函数以提交窗口中存在的值,以及她的逻辑。这是我需要做的,但我要求所有其他方式来做到这一点。

4

2 回答 2

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

这是一个小提琴

于 2013-06-05T17:58:31.613 回答
0

您总是可以只设置窗口的配置 closable:true,而不是定义自己的按钮。

于 2013-06-05T16:57:48.763 回答