Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJs 4-Window.show()-窗口大小非常小_Javascript_Extjs - Fatal编程技术网

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

Javascript ExtJs 4-Window.show()-窗口大小非常小,javascript,extjs,Javascript,Extjs,我开始学习ExtJS4,在网格上双击事件时显示模式窗口时遇到了一个问题 在网格组件上定义的侦听器: "listeners": { "itemdblclick": function() { var win =Ext.getCmp('myCmp'); win.myWindow.show(); } } 以前定义的myCmp属性是窗口组件: (我使用了父容器对象myCmp作为生成javascript的代码来构建ExtJs配置) 逻辑运行良好,我双击网

我开始学习ExtJS4,在网格上双击事件时显示模式窗口时遇到了一个问题

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

"listeners": {
    "itemdblclick": function() { 
        var win =Ext.getCmp('myCmp');
        win.myWindow.show(); 
    }
}
以前定义的myCmp属性是窗口组件: (我使用了父容器对象myCmp作为生成javascript的代码来构建ExtJs配置)

逻辑运行良好,我双击网格,窗口对象出现(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

当您可以直接引用窗口时,为什么要引用“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();

是的,不错。高度和宽度的字符串是打字错误,真正的实现使用INT。您回复中的第一个方法的结果完全相同,但您的意思是,您应该在每次使用窗口时创建并销毁它?我看过一些ExtJs示例,它们将窗口对象保存在一个var中并重用它,这就是为什么我认为这是最佳实践。你知道吗,Abdel,它们是字符串,这是我正在查看的另一个对象。抱歉,还有好地方。谢谢。销毁和重新创建取决于您的应用程序。。你多久使用一次窗户?等为了降低复杂性,我修改了显示窗口的代码。打字错误应该已经纠正了你的错误。
Ext.create('Ext.window.Window',{
    layout: 'fit',
    items: [
     ....     
    ],
    title: 'Hello Window',
    width: 300,
    height: 300,
    id: 'myWindow'
}).show();