これが私のウィンドウとその中のフォームです:
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 」という1つのファイルに含まれています。
だから、私は次のようにオブジェクトを作成しています:
var win = Ext.create('App.view.Users.Update');
ボタンで作成されています。しかし、ウィンドウをwin.close()
閉じて、「境界線」レイアウト内の「タブ」を閉じて、同じウィンドウを再度作成するためのボタンを押すと、(コンソールで)オブジェクトを再作成していると表示されます。再び同じ「id」。すでにExt.AbstractManagerに登録されています。
オブジェクトを完全に破棄するにはどうすればよいですか?たぶんExt.AbstractManager.unregister(win); なにか?
さらにコードが必要な場合は、問題ありません。:) ありがとうございました。
PS
私は自分のウィンドウへの参照を次のように取得しています:
var window = Ext.ComponentQuery.query('#UpdateWindowUsers')[0];
window.close();
window.close()は実際にその中のパネルを破壊しますか?