【问题标题】:Localize button from a window窗口中的本地化按钮
【发布时间】:2013-06-05 16:33:29
【问题描述】:

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

【问题讨论】:

  • fmt:message 标签不是来自 ExtJS... 你知道的,对吗?现在,如果您可以获得对按钮的引用,您能否显示您想要进行的函数调用(您显然想用Ext.getCmp 做什么?

标签: extjs extjs4.2


【解决方案1】:

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

【讨论】:

  • 我不认为这是在回答问题,他还需要一个提交按钮,也许还有其他事情要做在控制器中
  • 可能越界了,但您的回答仍然根本没有回答问题,为什么有人投票赞成它没有任何意义。
  • @cclerville 是的,我可以,但我需要用底部有两个按钮的窗口来实现这种界面。我知道这是多余的,但我必须以这种方式完成我的工作。
【解决方案2】:

我假设您尝试获取按钮引用的所有方法都不起作用,因为在您调用它们时没有创建按钮。您应该在调用Ext.getCmp 时等待按钮呈现,或者在您的控制器init 方法中使用this.control。这是一个例子:

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

【讨论】:

  • 我不使用控制器,因为我不使用 extjs mvc 模式。无论如何,谢谢。
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 2011-09-25
  • 2017-09-07
  • 1970-01-01
  • 2021-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多