2011-10-28 81 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的异步性质! –