我正在运行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),然后我们回到主屏幕创建第二个标签(tab-b)。现在,当我点击tab-a时,没有任何反应。当我返回主屏幕然后点击tab-a时,它会打开tab-b。
有人想过为什么会这样吗? (如果你需要更多的数据,请告诉我......虽然我在下面做的事情似乎相当自我解释,但这可能是因为我一直在盯着这一点)
继承我们正在创建的xtype的标签
{
xtype: 'tabpanel',
region: 'center',
id: 'searchtabs',
itemId: 'searchtabs',
listeners: {
tabchange: {
fn: me.onSearchtabsTabChange,
scope: me
}
}
}
答案 0 :(得分:0)
您的xtype定义可能有问题,您是设置id
还是itemId
?
另请注意,创建多个具有相同id
的组件可能会导致以后出现许多问题。如果要创建组件的多个实例,请确保在创建时分配不同的id
- 不要在xtype定义中给出一个。