0
我已經得到了在Ext JS的5延伸Ext.form.Panel
父面板大致如下定義一個父類ParentPanel
:父類,擴展Ext.form.Panel,添加DockedItmes
Ext.define('...ParentPanel', {
config : {
isItTrue : true
},
dockedItems: [],
initComponent : function() {
var me = this;
//If some evaluation is true...
if (isItTrue) {
me.dockedItems.push({
// the components I am trying to add...
});
this.callParent():
}
//....
的基本問題是什麼類延伸ParentPanel
將調用initComponent
函數,將項目添加到父dockedItems
配置。每true
評估(所以我最終重複,因爲每個孩子都分享父母的dockedItems
配置。)。我想要要要做的只是將該項目添加到配置的繼承類dockedItems
,而不是父項。
這甚至可能是Ext JS?如果是這樣,理解設計問題,我將如何解決這個問題?
所以,不保持在父的全局引用'dockedItems',然後呢?只需通過'initComponent'將「停靠的項目」添加到調用的子項中? (只要確保我明白) – Thomas
我喜歡設計決定。比我想要建議的更好:每個孩子都有一個'dockedItems'配置。默認爲'[]',即保持它自己的「本地」引用到'dockedItems'配置。 – Thomas
分機確實不希望你有多個實例之間共享的引用(數組,對象...)。它會自己修改它們(例如,它會用'items'中的實際實例替換所有配置對象等)。如果你這樣做,你會變得很奇怪,很難調試行爲。 – rixo