ExtJS6从ViewController启动模式窗口

ExtJS6从ViewController启动模式窗口,extjs,modal-dialog,Extjs,Modal Dialog,我正在尝试从viewcontroller中启动模式窗口。考虑下面的代码(也位于): 我遇到的问题是,当启动窗口2时,它仅对启动它的视图是模态的,我需要该窗口对整个文档是模态的。如果按原样运行,htmlRender函数将正确记录window 2对象。我试图在窗口2上设置renderTo:Ext.getBody();但是,渲染时我无法访问它的对象。在这种情况下,htmlRender为Window2对象记录一个“未定义”的日志 我需要一些帮助,允许窗口2作为文档的模式呈现,同时允许我引用其对象。谢谢你

我正在尝试从viewcontroller中启动模式窗口。考虑下面的代码(也位于):

我遇到的问题是,当启动窗口2时,它仅对启动它的视图是模态的,我需要该窗口对整个文档是模态的。如果按原样运行,htmlRender函数将正确记录window 2对象。我试图在窗口2上设置
renderTo:Ext.getBody()
;但是,渲染时我无法访问它的对象。在这种情况下,htmlRender为Window2对象记录一个“未定义”的日志


我需要一些帮助,允许窗口2作为文档的模式呈现,同时允许我引用其对象。谢谢你的帮助

不要将窗口添加到该视图中,请替换:

this.dialog = this.getView().add({xtype:'window2'})
与:


工作示例:

我可以通过在窗口上设置
renderConfig:Ext.getBody()
来解决这个问题,删除html项目上的侦听器,并为window2上的show事件添加一个侦听器:

我也尝试过这样做。问题是,它将范围从viewcontroller中移除。如果将html配置放回窗口并侦听“afterrender”,它将在viewcontroller中找不到htmlRender方法。我可以通过在窗口上设置renderConfig:Ext.getBody()来解决此问题,删除html项目上的侦听器,甚至在窗口上为显示添加侦听器:
this.dialog = this.getView().add({xtype:'window2'})
this.dialog = Ext.widget('window2');