ControllerのMVCアプリケーションでは、DataViewを内部に持つTabPanelに新しいタブを追加してフォーカスするための次の関数があります。
show_gallery: function(view, record, item, index, e, opts) {
var tabb = Ext.ComponentQuery.query('.gallery_panel');
var gallery_view = Ext.widget('gallery_view');
var ImageStore = Ext.create('Gallery.store.Images');
ImageStore.load({url: 'myphoto/index.php/api/feed/json/' + record.data.uuid});
Ext.apply(gallery_view, {
title: record.data.name,
id: record.data.uuid,
closable:true,
store: ImageStore
});
if (tabb[0].down('#' + record.data.uuid)) {
console.log('Entered IF');
//tabb[0].setActiveTab(tabb[0].down('#' + record.data.uuid));
tabb[0].setActiveTab(record.data.uuid);
}else{
console.log('Entered ELSE');
tabb[0].add(gallery_view);
if (Ext.getCmp(record.data.uuid)) {
console.log('THERE IS SUCH UUID');
}
//tabb[0].setActiveTab(gallery_view);
}
},
そして問題は最後の行にあります。tabb [0] .setActiveTab(gallery_view)のコメントを解除すると、新しいタブはフォーカスされますが空になり、コメントを付けたままにすると、dataViewの新しいタブにデータが入力されますがフォーカスされません。setActiveTab()によってDataViewがまったく表示されない理由がわかりません。gallery_viewウィジェットはExt.view.View拡張子です。