私はExtJS 4.1を実行しており、タブオープナーを以下に定義しています:
var tabs = (typeof tabs != 'undefined') ? tabs : this.getMainTabs();
tabs = (typeof tabs == 'string') ? Ext.getCmp(tabs) : tabs;
var have_record = (typeof record != 'undefined' && record != '');
var id = have_record ? record.id : 'new';
var tab_id = 'tab-' + xtypeString + '-' + id;
var checkTab=Ext.getCmp(tab_id);
if(checkTab){
tabs.setActiveTab(checkTab);
} else {
var default_params = {xtype: xtypeString, closable : true, id : tab_id};
var override_params = (typeof params != 'undefined') ? params : {};
params = Ext.merge(default_params, override_params);
var checkTab = tabs.add(params);
tabs.setActiveTab(checkTab);
(have_record) ? checkTab.setRecord(record) : checkTab.setRecord();
}
return checkTab;
つまり、最初のタブ (tab-a) を作成してから、メイン画面に戻って 2 番目のタブ (tab-b) を作成します。tab-a をクリックしても、何も起こりません。メイン画面に戻って tab-a をクリックすると、tab-b が開きます。
なぜこれが起こっているのか考えている人はいますか?(さらにデータが必要な場合はお知らせください...以下で私がしていることはかなり自明のようですが、それは私がこれをずっと見つめてきた原因かもしれません)
作成している xtype のタブを次に示します。
{
xtype: 'tabpanel',
region: 'center',
id: 'searchtabs',
itemId: 'searchtabs',
listeners: {
tabchange: {
fn: me.onSearchtabsTabChange,
scope: me
}
}
}