2013-06-05 35 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