我有一个使用ExtJS 5.0.1的自定义Ext.panel.Panel
的主窗口。
单击自定义面板上显示的项目会创建并显示自定义Ext.window.Window
以编辑所述项目。
为了获得某种答案,或者为我自己的情况起点,我会要求提供标准的Ext组件。
关闭自定义窗口时,需要更新自定义面板中的变量以显示已进行的更改。
这是关闭窗口之前对确认消息的不同要求;窗口不控制向DB保存信息,但需要让另一个组件知道已经进行了更改。
如果窗口的信息已被更改,这应该就像在面板上设置布尔unsavedChanges
到true
一样简单;我在一个更简单的页面上执行了此操作,该页面没有附加窗口作为障碍。
由于使用了窗口,我使用this.up
或this.lookupReference
计算变量的典型方法会返回null,或者抛出错误。
我知道我可以考虑转到页面的父级,然后尝试解决,但我没有经验足以将标准javaScript与up
和{{合并1}} ExtJS的功能,或者至少了解ExtJS的复杂性,以便浏览"项目窗口"回到小组。
如何在关闭窗口时参考面板以更新面板数据?
答案 0 :(得分:3)
嗯,有几种方法。
首先,您可以在构建窗口期间传入面板或回调函数。 e.g:
// in panel
var window = Ext.create('MyWindow', { callingPanel: this })
...
// in window
onClose: function() { this.callingPanel.doStuff(); }
另一种方法是将监听器注册到窗口的“close”事件。
// in panel
var window = Ext.create('MyWindow', {
listeners: {
scope: this,
close: this.doStuff
}
})
当您不希望将窗口紧密耦合到调用面板时,侦听器方法往往效果最佳。