2011-09-08 50 views
0

有沒有什麼辦法可以將一些配置(對象屬性)添加到創建的extobject中。ExtJS 3.動態添加配置

var thePanel = new Ext.Panel({ 
    border: false 
}); 

thePanel.addpendConfigs({    //How to? 
    height: 40, 
    region: "north" 
}); 

回答

1

使用Ext.applyIf。 從docs

複製配置的所有屬性,如果他們不已經 存在OBJ。

這裏的定義是:

applyIf(Object obj, Object config) : Object 

否則使用Ext.apply

複製配置的所有屬性設置爲obj。

定義:

apply(Object obj, Object config, Object defaults) : Object 
2

我是來自設定區北你wan't到面板中添加與邊界佈局的容器猜測...我相信你可以做這樣的事情

thePanel.setHeight(40); 
thePanel.region = 'north'; 

container.add(thePanel); 
container.doLayout(); 

的doLayout方法應強制在所有組件的佈局重新計算...

編輯:

對於通用的解決方案檢查Ext.apply

var config = { 
    height: 40, 
    region: "north" 
} 

Ext.apply(thePanel,config); 

但我認爲你還需要給力的佈局重新計算像上面

+0

thx快速回答。但我正在尋找通用解決方案。 – TheHorse

0

據我所知,一旦對象已經被實例化,你不能簡單地重擊新的配置選項進去。它起泡太多(例如,比如說你想覆蓋「items」數組,這會影響你的實際對象)。

通常ExtJs有一個方法來做你想做的事情。