首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ExtJS6启动模式窗口ViewController

ExtJS6启动模式窗口ViewController
EN

Stack Overflow用户
提问于 2015-12-28 14:38:04
回答 2查看 2K关注 0票数 0

我正在尝试从一个视图控制器中启动一个模态窗口。考虑以下代码(也位于https://fiddle.sencha.com/#fiddle/1335):

代码语言:javascript
复制
Ext.application({
    name : 'Fiddle',
    launch : function() {
        Ext.define('Window1',{
            extend: 'Ext.window.Window',
            controller: 'winctrl',
            xtype: 'window1',
            initComponent: function(){
                Ext.apply(this,{
                    title:'Window 1',
                    width: 400,
                    height: 400,
                    layout: {type:'hbox',pack:'center',align:'middle'},
                    items:[{
                        xtype: 'button',
                        text: 'Click Me!',
                        handler: 'btnClickMeClick'
                    }]
                });
                this.callParent(arguments);
            }
        });
        Ext.define('Window2',{
            extend: 'Ext.window.Window',
            xtype: 'window2',
            initComponent: function(){
                Ext.apply(this,{
                    title: 'Window 2',
                    width: 200,
                    height: 200,
                    modal: true,
                    //renderTo: Ext.getBody(),
                    layout: {type:'hbox',pack:'center',align:'middle'},
                    items:[{
                        html: 'Modal Looks Odd',
                        listeners:{
                            afterrender: 'htmlRender'   
                        }
                    }]
                });
                this.callParent(arguments);
            }
        });
        Ext.define('WinCtrl',{
            extend: 'Ext.app.ViewController',
            alias:'controller.winctrl',
            btnClickMeClick: function(){
                this.dialog = this.getView().add({xtype:'window2'});
                this.dialog.show();
            },
            htmlRender: function(){
                console.log(this.dialog);
            }
        });
        Ext.widget('window1').show();
    }
}); 

我遇到的问题是,当窗口2启动时,它只是对启动窗口的视图的模态,而我需要该窗口对整个文档进行模态化。如果按原样运行,htmlRender函数将正确地记录window 2对象。我试图在窗口2上设置renderTo: Ext.getBody();但是,当呈现它的对象时,我无法访问它的对象。在本例中,htmlRender记录窗口2对象的“未定义”。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-28 19:30:19

我能够通过设置窗口上的renderConfig:Ext.getBody()、删除html项上的侦听器以及为window2:https://fiddle.sencha.com/#fiddle/133j上的显示事件添加一个侦听器来解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2015-12-28 14:46:15

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

代码语言:javascript
复制
this.dialog = this.getView().add({xtype:'window2'})

通过以下方式:

代码语言:javascript
复制
this.dialog = Ext.widget('window2');

工作示例:https://fiddle.sencha.com/#fiddle/1338

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34495495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档