2011-10-28 65 views
2

什麼是去除我知道我不會再使用組件的正確方式,但我想以後使用同一個類的新實例?刪除煎茶觸摸雙組分

例如,使用Ext.Viewport.add()將創建表單添加到視口中,但是一旦提交,我想銷燬表單,因此下次用戶想要創建項目時,會生成新表單(即新建組件被實例化)。

我試過Ext.Viewport.remove(form, false)Ext.Viewport.remove(form, true),它們都給我錯誤:TypeError: Cannot set property 'className' of undefined

回答

1

顯然,這是不工作的原因是,我試圖刪除代碼的組件,我從成分中含有的成分的事件處理程序跑到被移除。

例如,如果您單擊某個按鈕,並且按鈕立即嘗試從視口中刪除其容器組件,則刪除將會成功,但按鈕釋放事件將被調用時不會使用DOM元素,因爲按鈕本身也被刪除。

簡單的解決方法是一個短暫的停頓之後調用Ext.Viewport.remove(...)

+0

只是一個想法,我沒有想過太難,但在發佈事件中調用remove(或者最後一次,甚至是由按鈕單擊觸發的)不是更好嗎? –

+0

這可能會工作......不幸的是,我沒有這個代碼來測試它。 –

+0

哈哈,一切都很好。完全舊的帖子! :)我總是陷入麻煩,忘記了Sencha Touch的異步性質! –