有没有办法将窗口定义为唯一?
我的意思是:当窗口已经打开时,我希望它能够获得焦点,而不是再次打开它。
现在我的菜单点击事件就是:
onMenuItemClick: function(){
Ext.create('Mb.view.UniqueWindow').show()
},
答案 0 :(得分:2)
给它一个唯一的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();
}
您可以看到working sample here
答案 1 :(得分:1)
保存对它的引用:
if (!MyApp.someWin) {
MyApp.someWin = new Ext.window.Window();
}
MyApp.someWin.show();