我有一个在函数内部调用的Ext.Window。我通过函数将参数传递给window
。当我尝试使用新值重新打开window
时,window
会使用旧值执行操作。
这是我的代码 -
var Win;
LoadWindow = function (id) {
if (!Win) {
Win = new Ext.Window({
id: 'Pop-win',
layout: 'fit',
width: 650,
modal: true,
height: 450,
closeAction: 'close',
plain: true,
items: [Panel],
listeners: {
close: function (w) {
Win.removeAll();
},
show: function (p) {
Store.reload({
params: {
'ID': id
}
});
}
}
});
}
Win.show();
}
PS:我使用extjs 3.4版本
答案 0 :(得分:0)
移动Store.reload();部分退出节目听众。它引用的id总是指第一次创建窗口时。
如果此窗口没有经常使用,只需将其更改为使用 closeAction:'destroy'就可以了,这样您每次都可以生成一个新窗口。如果需要重用它,请在单独重新加载存储的窗口上编写一个辅助函数,然后调用Win.customStoreReload(),然后调用Win.show()。顺便说一下,closeAction:'close'也不是一个有效的closeAction。配置只能设置为“销毁”或“隐藏”。
LoadWindow = function (id) {
if (!Win) {
Win = new Ext.Window({
id: 'Pop-win',
layout: 'fit',
width: 650,
modal: true,
height: 450,
closeAction: 'hide', // either 'hide' or 'destroy'. 'close' is not a valid option
plain: true,
items: [Panel],
listeners: {
close: function (w) {
Win.removeAll();
}
}
});
}
Store.reload({params: { 'ID': id }});
Win.show();
}