2010-09-02 21 views
4

我有一些類如何讓參數在extjs的構造函數?

AddOrgWindowUI = Ext.extend(Ext.Window, { 
title: 'form', 
width: 400, 
height: 198, 
layout: 'form', 
padding: 5, 
initComponent: function() { 
    this.items = [ 
     { 
      xtype: 'textfield', 
      fieldLabel: 'parapapa', 
      anchor: '95%', 
      value: m, 
      emptyText: 'perapapa' 
     } 
    ]; 
    AddOrgWindowUI.superclass.initComponent.call(this); 
}}); 
當我創建一個對象 var AddOrgWindowForm = new AddOrgWindowUI('aaa');我想ARG(「AAA」)到我的新形式值(M值)

。如何得到它? 即時通訊設法initComponent: function(m) {和那不工作。

回答

7

initComponent函數內部調用上的Ext.Window基類中的一個。你不應該嘗試直接調用它。這就是爲什麼它不能處理你自己的參數。

因此,我建議您使用extending ExtJS classes時的標準窗體參數。

這與使用要覆蓋的屬性或方法初始化對象一樣簡單(或者在屬性不存在的情況下插入)。然後只需使用this關鍵字來訪問它們。

這是可能的,因爲對於每個Ext.Component及其子類,傳遞給構造的第一個參數是一個對象,在該對象中的每一個成員將被複制到構造新的對象。而且大多數ExtJS類都是從Ext.Component直接或間接擴展而來的,並且從Ext.Window擴展到Ext.Component

這裏,你有你的榜樣固定:

var AddOrgWindowUI = Ext.extend(Ext.Window, { 
    title: 'form', 
    width: 400, 
    height: 198, 
    layout: 'form', 
    padding: 5, 

    initComponent: function() { 
     this.items = [ 
      { 
       xtype: 'textfield', 
       fieldLabel: 'parapapa', 
       anchor: '95%', 
       value: this.initialValue, 
       emptyText: 'perapapa' 
      } 
     ]; 
     AddOrgWindowUI.superclass.initComponent.call(this); 
    } 
}); 

function test() { 
    var AddOrgWindowForm = new AddOrgWindowUI({initialValue:'aaa'}); 
    AddOrgWindowForm.show(); 
} 
+0

thx很多,而thx for鏈接;) – 2010-09-02 17:17:38

0

通米作爲initComponent的精氨酸:

編輯:

AddOrgWindowUI = function(input) { 
    var m = input; 
    return Ext.extend(Ext.Window, { 
     title: 'form', 
     width: 400, 
     height: 198, 
     layout: 'form', 
     padding: 5, 
     initComponent: function() { 
      this.items = [ 
     { 
      xtype: 'textfield', 
      fieldLabel: 'parapapa', 
      anchor: '95%', 
      value: m, 
      emptyText: 'perapapa' 
     } 
    ]; 
      AddOrgWindowUI.superclass.initComponent.call(this); 
     } 
    }); 
} 
+0

THX,但如何聲明一個新的對象? var AddOrgWindowForm = new AddOrgWindowUI.initComponent('aaa'); - 沒有工作。 – 2010-09-02 14:49:24

+0

我上面的編輯可能會這樣做。 – Silkster 2010-09-02 14:57:40

+0

它不工作太:(試試吧。螢火蟲說 - 「AddOrgWindowUI.initComponent不是一個函數」 – 2010-09-02 15:53:28