销毁微件内部TabContainer
的正确方法是什么Dojo/Dijit?销毁Dijit中的微件
为每个标签我加载新BorderContainer
基本上包括一个小部件,包括任何小部件。但现在我试图让它与标签控件一起工作,以便在加载新页面之前破坏前一页,我被卡住了。现在,我使用全局变量来存储活动部件的名称,当用户点击一个新的标签,从全局变量取主动控件的ID和毁坏它,然后继续到加载新的活动部件。这种方法很有效,但是当我销毁了一次这个小部件时,我无法再让它出现。我得到这个错误:
Uncaught Error: Tried to register widget with id==widget_foo_container but that id is already registered".
我使用widget_XXX_container
ID这么XXX
由控件的ID代替了所有小工具。
我目前使用d ijit.byId('widget_foo_container').destroy()
但它似乎并没有做的工作。我也曾尝试destroyDecendant()
和destroyRecursive()
但他们不产生想要的效果也。看起来我可能会错过一个实际完成销毁小部件的作品,而不是从DOM中删除它。
我居然得到了这个工作。我需要做的是从BorderContainer getChildren(),然后与forEach()destroyRecursive()和销毁()... pheew,这是令人沮丧的3小时... – jimm 2011-03-28 11:42:53
'destroyRecursive'应该足够 - 它调用destroyDescendants '和'摧毁'本身。对于这个问题,我很好奇,为什么在BorderContainer本身调用'destroyRecursive'并不能满足你的需求...... – 2011-03-29 01:48:18