ExtJS(5.0):当目标显示被隐藏/销毁时隐藏/销毁浮动面板

时间:2016-08-29 07:51:23

标签: extjs

我将用一个例子解释这个问题: 有两个面板P1& P2(浮动)。我已经将P1指定为P2的showBy.Now,当我销毁/隐藏P1时,理想情况下P2必须被隐藏。但在这种情况下,P2仍然显示。 当P1被隐藏/摧毁时,有什么方法可以自动隐藏这个P2。

2 个答案:

答案 0 :(得分:1)

我会像使者建议的那样做。

当p1被破坏或隐藏时,向p1添加一个监听器以隐藏p2。

p1.on('destroy', p2.hide, p2); 
p1.on('hide', p2.hide, p2); 

答案 1 :(得分:0)

我已经制作了一个完全相同的组件:如果你为它提供了一个“callingWindow”配置,它将showBy调用窗口,如果调用窗口关闭,它也会关闭。如果你没有为它提供一个callingWindow配置,它就像一个普通的窗口:

Ext.define('MyComponent',{
    extend:'Ext.window.Window',
    initComponent:function() {
        var me = this,
            win = me.callingWindow;
        Ext.apply(me,{
            ...
        });
        me.callParent(arguments);
        if(win) {
            win.on('beforeclose',function() {
                if(me) me.close();
            });
            me.showBy(win,'tl-tr');
        }
        else me.show();
    },
});

我这样用:

xtype:'button'
handler:function(button) {
    Ext.create('MyComponent',{
        callingWindow:button.up('window')
    });
}