0

这是我的窗口和里面的表格:

Ext.define('App.view.Users.Update', {
    extend: 'Ext.window.Window',
    title: 'User',
    width: 250,
    id: 'UpdateWindowUsers',
    defaultType: 'textfield',
    items: [{
        xtype: 'UpdateFormUsers'
    }],
    buttons: [
      { text: 'Save', id: 'submitUpdateFormButtonUsers'},
      { text: 'Cancel', id: 'cancelUpdateFormButtonUsers'},
    ]
});

Ext.define('App.view.Users.UpdateForm', {
    extend: 'Ext.form.Panel',
    alias: 'widget.UpdateFormUsers',
    layout: 'form',
    id: 'UpdateFormUsers',
    bodyPadding: 5,
    defaultType: 'textfield',
    items: [{
        fieldLabel: 'Id',
        name: 'id',
        hidden: true
    },{
        fieldLabel: 'username',
        name: 'username',
        allowBlank: false,
    },{
        fieldLabel: 'password',
        name: 'password',
        minLength : 5,
        allowBlank: false
    },{
        fieldLabel: 'Email',
        name: 'email',
        minLength : 5,
        vtype: 'email',
        allowBlank: false
    },{
        fieldLabel: 'first name',
        name: 'first_name',
        allowBlank: false
    },{
        fieldLabel: 'last name',
        name: 'last_name',
        allowBlank: false
    }],
});

它在一个文件中:“ App/view/Users/Update.js ”。

所以,我正在创建一个对象:

var win = Ext.create('App.view.Users.Update');

它是用一个按钮创建的。但是当我关闭窗口win.close()并关闭“边框”布局内的“选项卡”时,当我再次按下按钮以创建相同的窗口时,它说(在我的控制台中)我正在重新创建一个对象再次使用相同的“id”。它已经在 Ext.AbstractManager 中注册。

我怎样才能完全摧毁物体?也许与Ext.AbstractManager.unregister(win); 某物?

如果您需要更多代码,没问题。:) 谢谢。

附言

我得到了对我的窗口的引用:

var window = Ext.ComponentQuery.query('#UpdateWindowUsers')[0];
window.close();

window.close() 实际上会破坏其中的面板吗?

4

1 回答 1

0

解决了。

这 == 控制器

if(this.isCreated){
    this.control(listeners);
}

我已将isCreated属性放入 Controller 中。

于 2013-05-03T16:41:17.407 回答