将参数从Ext.window.Window传递到关闭时的Ext.panel.Panel

时间:2014-11-04 17:42:00

标签: extjs reference window extjs5

我有一个使用ExtJS 5.0.1的自定义Ext.panel.Panel的主窗口。

单击自定义面板上显示的项目会创建并显示自定义Ext.window.Window以编辑所述项目。

为了获得某种答案,或者为我自己的情况起点,我会要求提供标准的Ext组件。

关闭自定义窗口时,需要更新自定义面板中的变量以显示已进行的更改。

这是关闭窗口之前对确认消息的不同要求;窗口不控制向DB保存信息,但需要让另一个组件知道已经进行了更改。

如果窗口的信息已被更改,这应该就像在面板上设置布尔unsavedChangestrue一样简单;我在一个更简单的页面上执行了此操作,该页面没有附加窗口作为障碍。

由于使用了窗口,我使用this.upthis.lookupReference计算变量的典型方法会返回null,或者抛出错误。

我知道我可以考虑转到页面的父级,然后尝试解决,但我没有经验足以将标准javaScript与up和{{合并1}} ExtJS的功能,或者至少了解ExtJS的复杂性,以便浏览"项目窗口"回到小组。

如何在关闭窗口时参考面板以更新面板数据?

1 个答案:

答案 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
  }
})

当您不希望将窗口紧密耦合到调用面板时,侦听器方法往往效果最佳。