没有子面板时关闭整个tabpanel

时间:2016-08-22 11:50:30

标签: extjs6

我有一个tabpanel,有很多孩子。每个都可以关闭。我想在没有孩子时删除tabpanel。

listeners: {
    close: function(element) {
        var detailTabPanel = element.up('DetailTabPanel');
        if(detailTabPanel.items.length <= 1)
        {
           detailTabPanel.destroy();
        }
    }
}

我已经编写了类似上面的代码来进行近距离操作。但我得到像

这样的错误
Uncaught TypeError: Cannot read property 'get' of null DetailTabPanel is the tabpanel.

2 个答案:

答案 0 :(得分:1)

几乎就在那里!试试这样:

listeners: {
    remove: function(tabpanel, child, eOpts) {
        if (tabpanel.items.length === 0) {
            tabpanel.destroy();   
        }
    }
}

请参阅此处的小提琴:https://fiddle.sencha.com/#fiddle/1fo2

你不必在听众中做callParent

答案 1 :(得分:0)

你正在使用错误的事件。您不想监听子项的close事件(在从面板中删除选项卡后调用),而是要在选项卡面板上监听remove事件。