Javascript ExtJs5如何将浮动窗口作为项目添加到面板中?

Javascript ExtJs5如何将浮动窗口作为项目添加到面板中?,javascript,extjs,mvvm,extjs5,Javascript,Extjs,Mvvm,Extjs5,我正在用MVVM结构编写我的应用程序。我在GeoPortal.geox.components.MapToolbar中有按钮作为项目。在我的视图(GeoPortal.view.map.map)中,我使用此工具栏,工具栏的按钮在我的viewController(GeoPortal.view.map.MapController)中具有操作。现在这个工具栏必须是浮动的,所以我把它放在浮动窗口中。但要访问按钮操作,此窗口必须是面板的一项 我尝试添加如下代码中的项目,但出现以下错误: TypeError:

我正在用MVVM结构编写我的应用程序。我在GeoPortal.geox.components.MapToolbar中有按钮作为项目。在我的视图(GeoPortal.view.map.map)中,我使用此工具栏,工具栏的按钮在我的viewController(GeoPortal.view.map.MapController)中具有操作。现在这个工具栏必须是浮动的,所以我把它放在浮动窗口中。但要访问按钮操作,此窗口必须是面板的一项

我尝试添加如下代码中的项目,但出现以下错误:

TypeError: me.floatingItems is undefined
GeoPortal.view.map.map:

Ext.define("GeoPortal.view.map.Map",{
    "extend": "GeoPortal.geox.components.Panel",
    "controller": "map",
    "viewModel": {
        "type": "map"
    },
    "uses": ['GeoPortal.geox.components.MapToolbar',
        'GeoPortal.geox.components.MapInfobar',
        'GeoPortal.geox.components.Window'
    ],
    initComponent: function () {

        var win = Ext.create({
            xtype: 'gxWindow',
            id: 'mapToolbarWindow',
            items: [{
                xtype: 'gxMapToolbar'
            }]
        });

        // FIX this
        this.add(win);
        this.callParent();
    },

    listeners : {
        afterrender: {
            fn: function () {
                Ext.getCmp('mapToolbarWindow').show();
            }
        }
    },
    "region": 'center',
    "collapsible": false,
    "collapsed": false,
    "xtype": "mapPanel",
    items: [{
        xtype: 'gxMapInfobar'
    }, {
        html: '<div id="map" class="map"></div>'
    }]
});
Ext.define(“GeoPortal.view.map.map”{
“扩展”:“GeoPortal.geox.components.Panel”,
“控制器”:“地图”,
“视图模型”:{
“类型”:“映射”
},
“使用”:['GeoPortal.geox.components.MapToolbar',
“GeoPortal.geox.components.MapInfo栏”,
'GeoPortal.geox.components.Window'
],
initComponent:函数(){
var win=Ext.create({
xtype:'gxWindow',
id:“mapToolbarWindow”,
项目:[{
xtype:'gxMapToolbar'
}]
});
//解决这个问题
这个。加(赢);
这是callParent();
},
听众:{
后渲染:{
fn:函数(){
Ext.getCmp('mapToolbarWindow').show();
}
}
},
“区域”:“中心”,
“可折叠”:错误,
“崩溃”:错,
“xtype”:“地图面板”,
项目:[{
xtype:'GxMapInfo栏'
}, {
html:'
}]
});

提前感谢。

您只需存储对window
this.win=Ext.create({xtype:'gxWindow'})的引用即可。
。然后,您可以在需要时随时使用。如果您还需要对窗口中的面板进行引用,请在窗口配置中传递它:
this.win=Ext.create({xtype:'gxWindow',panel:this})

另外,你们应该记住,当面板被破坏时,你们应该破坏窗口,否则你们将有潜在的memleak