0

私は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
       }
    }
 }
4

1 に答える 1

0

xtype 定義に問題がある可能性があります。設定していますiditemId?

また、同じコンポーネントを複数作成すると、id後で多くの問題が発生する可能性があることに注意してください。コンポーネントの複数のインスタンスを作成する場合は、id作成時に異なるものを割り当てるようにしてください。xtype 定義でインスタンスを指定しないでください。

于 2012-12-29T15:13:21.883 に答える