2013-06-05 32 views
0

可能是一个愚蠢的问题,但我真的不知道现在,我必须做什么来本地化我刚刚重新定义和创建的窗口中的按钮。 I 使用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,身份证但Ext.getCmp(ID),Ext.ComponentQuery.QUERY(ID)不做他们的工作。

重新编辑:

OK,问题是不明确的:我定义这样的组件newWindow。 我说我不使用MVC模式,并在我的程序的一部分,我在这里创建此组件;

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

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

+0

的'FMT:message'标签是不是从ExtJS的东西......你知道的,对吧?现在,你可以显示你想要的函数调用,如果你可以得到一个按钮的引用(你显然想用'Ext.getCmp'做什么? – rixo

回答

0

您可以随时设置窗口的configclosable:true而不是定义您自己的按钮。

+2

我不认为这是回答这个问题,他还需要一个提交按钮,还有其他的事情可以在控制器 –

+0

@Reimius严重吗? – cclerville

+0

可能跨过了界限,但你的答案仍然没有回答这个问题,它没有任何意义,为什么 – Reimius

0

我假设您试图获得对按钮的引用的所有方法都无法正常工作,因为按钮在您调用它们时未创建。在调用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

+0

我不' t使用控制器,因为我不使用extjs mvc模式。 – AfanfeFana