有没有办法将窗口定义为唯一的?
我的意思是:当窗口已经打开时,我希望它获得焦点,而不是再次打开它。
现在我的菜单点击事件只是:
onMenuItemClick: function(){
Ext.create('Mb.view.UniqueWindow').show()
},
给它一个唯一的 id,然后在创建它之前验证它是否已经存在,否则就显示它,比如
function onMenuItemClick() {
var wnd = Ext.getCmp('myUniqueWindow');
if (!wnd) {
wnd = Ext.create('Ext.window.Window', {
id: 'myUniqueWindow',
title: 'Unique Window',
height: 200,
width: 400,
layout: 'fit',
closeAction: 'hide', // This is really important otherwise closing it will destroy the window!
items: { // Let's put an empty grid in just to illustrate fit layout
xtype: 'grid',
border: false,
columns: [{
header: 'Hello World'
}], // One header just for show. There's no data,
store: Ext.create('Ext.data.ArrayStore', {}) // A dummy empty data store
}
});
} else {
wnd.getEl().highlight()
}
wnd.show();
}
您可以在此处查看工作示例
保存对它的引用:
if (!MyApp.someWin) {
MyApp.someWin = new Ext.window.Window();
}
MyApp.someWin.show();