extjs 未捕获的类型错误:无法读取null的属性'dom'

xmd2e60i  于 2022-11-05  发布在  其他
关注(0)|答案(3)|浏览(212)

当第一次点击showbutton,然后窗口打开完美,但当我关闭窗口,并再次打开这个,然后它给出错误(“无法读取属性'dom'的null“)行'shiftWindow.show();"任何帮助都是感激不尽的。

var shiftWindow = Ext.create('Ext.window.Window', {
    title: 'Edit Shift',
    resizable: false,
    id: 'shiftwindow',
    width: 465,
    //bodyPadding: 5,
    modal: true,
    store: shiftStorePlanner,

    items: {
        xtype: 'form',
        id: 'idFormShift',
        bodyPadding: 10,
        items: shiftViewModelPlannerData
    },
    buttons: [{
        text: 'Save',
        cls: 'planner-save-button',
        overCls: 'planner-save-button-over',
        handler: function () {
            var wi = this.up('.window');
            var form = Ext.getCmp('idFormShift');
            if (form.isValid()) {
                shiftTimemappingarray = [];
                //  getShiftTime();
                setShiftTimeDetails();
            }
        }
    }, {
        text: 'Cancel',
        handler: function () {
            this.up('.window').close();
        }
    }]
});
shiftWindow.show();
p8ekf7hl

p8ekf7hl1#

如果在窗口上调用close(),窗口将被破坏。它不再存在于DOM中。在调用show()之前,必须重新创建它。
或者,您可以hide()该窗口,而不是关闭它。这样它将保留下来,不需要再创建一个。注意,右上角的'x'仍然会触发close事件。

rbl8hiat

rbl8hiat2#

单击窗口的“取消”时,
而不是使用

this.up('.window').close();

您应该使用

this.up('.window').destroy();

因为只有这样,它才会破坏整个窗口,包括dom。所以每次你打开它,它都会新鲜。;)

c9x0cxw0

c9x0cxw03#

也许你只是不像我一样在主体中定义div元素。

<div id="helloWorldPanel">
</div>

相关问题