通过id或itemId获取TabPanel的Tab

时间:2013-03-01 13:27:09

标签: extjs extjs4

我在带有标签的视图中有一个TabPanel。如何在此Panel中获取Tab的实例以及应将哪个属性设置为id或itemId?

由于

openProjectMetaTab: function(project) {
    var tabPanel = this.getTab();
    console.log(tabPanel);
    var mpItemId = 'project-metaTab-' + project.get('id')
    console.log('#'+mpItemId);
    var metaPanel = tabPanel.getComponent(mpItemId);
    console.log(metaPanel);
    if(!metaPanel) {
        tabPanel.add({
            title: project.get('title'),
            closable: true,
            items: [
                {
                    xtype: 'projectMetaForm',
                    itemId: mpItemId,
                },
            ],
        }).show();
    }
}

2 个答案:

答案 0 :(得分:2)

我建议使用itemId,因为这样您就不必担心全局ID属性冲突了。根据文件:

“由于itemId是容器内部MixedCollection的索引,因此itemId的范围是本地容器”

然后,您可以使用Ext.container.Container.getComponent来获取标签。

以下是海报更新问题的一个例子:

openProjectMetaTab: function(project) {
    var tabPanel = this.getTab();
    console.log(tabPanel);
    var mpItemId = 'project-metaTab-' + project.get('id')
    console.log('#'+mpItemId);
    var metaPanel = tabPanel.getComponent(mpItemId);
    console.log(metaPanel);
    if(!metaPanel) {
        tabPanel.add({
            title: project.get('title'),
            closable: true,
            xtype: 'projectMetaForm',
            itemId: mpItemId
        }).show();
    }
}

答案 1 :(得分:0)

简短答案:

myTabPanel.getComponent('someItemId');
相关问题