1. 程式人生 > >ExtJS裡面的一個控制元件重複的坑

ExtJS裡面的一個控制元件重複的坑

在ExtJS裡面,如果頻繁的開啟一個彈窗,彈窗裡面是動態建立的控制元件,控制元件賦予了id,

{
	id: "editQueryOid",
	labelWidth: 60,
	width: 180,
	labelAlign: "right",
	labelSeparator: "",
	fieldLabel: "oid",
	margin: "5, 0, 0, 0",
	xtype: "textfield"
}

那麼很可能導致多次開啟彈窗時控制元件重複的問題,

而且,如果是點選按鈕,呼叫ajax請求,還可能會多請求1次、2次不等。

 

猜測原因是由於彈窗雖然關閉了,但那些控制元件並沒有真正地清除,

當第二次開啟彈窗時,建立了id重複的一批控制元件,就出問題了。

 

解決辦法是:如非萬不得已,控制元件不用id。

如果需要把屬性繫結在控制元件上,不一定用id的,取個別的名字例如xid、tid什麼的也是可以取到值的。

控制元件賦予id主要用於Ext.getCmp(id)。