在 window 和 tabpanel ExtJs 中显示相同的面板

Showing same panel in a window and tabpanel ExtJs

我在 tabpanel 中有一个面板,当按下一个按钮时,我想在全屏中显示该面板 window。这是我现在正在做的事情:

 var panel = Ext.ComponentQuery.query('apanel')[0];
     if(button.pressed){
          if(Ext.getCmp('awindow')){ //if the window already exists
                Ext.getCmp('awindow').items.add(panel).show();// add the item to it
          } else{ // create a new window with the element
            Ext.create('Ext.window.Window', {
                title: 'Model Selector',
                layout: 'fit',
                id: 'apanel',
                contentEl: panel.getId(),
                maximized: true
            }).show();
        }
    }  else {
        Ext.getCmp('apanel').close(); // close the window
        Ext.ComponentQuery.query('maintabpanel')[0].updateLayout(); // update layout
    }

但它给我这个错误:

Failed to execute 'insertBefore' on 'Node': parameter 1 is not of type 'Node'.

我应该怎么做才能在关闭 window 时在选项卡面板中显示相同的面板?

window 上的 .close() 方法导致了问题,所以我改用 window 上的 .hide()

if(button.pressed){
          if(Ext.getCmp('awindow')){ //if the window already exists
                Ext.getCmp('awindow').items.add(panel).show();// add the item to it
                Ext.getCmp('awindow').show()
          } else{ // create a new window with the element
            Ext.create('Ext.window.Window', {
                title: 'Model Selector',
                layout: 'fit',
                id: 'apanel',
                contentEl: panel.getId(),
                maximized: true
            }).show();
        }
    }  else {
        Ext.getCmp('apanel').hide(); // close the window
        Ext.ComponentQuery.query('maintabpanel')[0].updateLayout(); // update layout
    }