私はMVCアーキテクチャを使用していますが、別のTabPanelを既存のTabPanelにインサイトで作成しようとすると、ブラウザで次のように表示されます。
el is null
el = el.dom || Ext.getDom(el); ext-all-debug.js (line 12807)
私が理解していることから、新しいTabPanelはレンダリングに必要なdivを見つけることができないようです。とにかく、ここにコントローラーがあります:
Ext.define('FI.controller.MainController', {
extend: 'Ext.app.Controller',
id: 'mainController',
views: ['MainTabPanel', 'UnitsTabPanel', 'SummariesTabPanel'],
mainTabPanel : {},
unitsTabPanel : {},
summariesTabPanel : {},
init: function(){
console.log("main controller is init");
console.log(this);
this.control({
'mainTabPanel':{
afterrender: this.onCreate
}
});
this.mainTabPanel = Ext.widget('mainTabPanel');
},
onCreate: function(){
console.log("main tab panel is created");
console.log(this);
this.unitsTabPanel = Ext.widget('unitsTabPanel');
this.summariesTabPanel = Ext.widget('summariesTabPanel');
}
});
これはMainTabPanelです:
Ext.define("FI.view.MainTabPanel", {
extend: 'Ext.tab.Panel',
renderTo:'container',
alias: 'widget.mainTabPanel',
enableTabScroll: true,
items:[{
title:'Units',
html: "<div id='units'></div>",
closable: false
},
{title: 'Summaries',
html: "<div id='summaries'></div>",
closable:false
}
]
});
そしてこれはSummariesTabPanel(問題のあるもの)です:
Ext.define("FI.view.SummariesTabPanel", {
extend: 'Ext.tab.Panel',
renderTo: 'summaries',
alias: 'widget.summariesTabPanel',
enableTabScroll: true
});
問題はにありSummariesTabPanel
ます。作成しないと、UnitsTabPanel
がレンダリングされます。summaries
何らかの理由で、 divが見つかりません。
何が悪いのか教えていただけますか?