ExtJs 4 - Window.show() - 窗口大小非常小

时间:2011-05-18 20:50:37

标签: javascript extjs

我正在处理ExtJs 4并且在网格上双击事件时出现问题显示模态窗口。

在网格组件上定义的侦听器:

"listeners": {
    "itemdblclick": function() { 
        var win =Ext.getCmp('myCmp');
        win.myWindow.show(); 
    }
}

以前定义的myCmp属性是一个窗口组件: (我使用了父容器对象myCmp作为生成javascript以构建ExtJs配置的代码)

myCmp.myWindow = Ext.create('Ext.window.Window',{
"layout": "fit",
"items": [
 ....     
],
"title": "Hello Window",
"width": "300",
"height": "300",
"id": "myWindow"
});

逻辑运行良好,我双击网格,窗口对象存在(myCmp.myWindow)但是当我调用show()时窗口显示的非常小(6px x 6px)。

如果我将处理程序更改为:

Ext.create('Ext.window.Window',{
"layout": "fit",
"items": [
 ....     
],
"title": "Hello Window",
"width": "300",
"height": "300",
"id": "myWindow"
}).show();

一切正常。显然这是在创建一个新的窗口实例。

有什么想法吗?我这样做了吗?

提前致谢

SAM

1 个答案:

答案 0 :(得分:4)

为什么在直接引用窗口时会引用“myCmp”?

 var win = Ext.getCmp('myWindow');
 win.show();

这应该有效。另外,为什么要在其他地方实例化一个窗口然后再使用它?在需要时创建实例并在使用后将其销毁会不会更好?

此外,您应该正确配置窗口。宽度和高度是数字字段而不是字符串。请参阅api文档和示例以了解如何正确配置对象。你应该使用以下窗口:

Ext.create('Ext.window.Window',{
    layout: 'fit',
    items: [
     ....     
    ],
    title: 'Hello Window',
    width: 300,
    height: 300,
    id: 'myWindow'
}).show();