Dojo小部件隐藏/放置

时间:2015-01-16 13:50:06

标签: dojo

我创建了许多自己的小部件。我有一个dom节点,我希望根据用户选择一次显示其中一个小部件。因此,我创建了一个小部件,将它放在dom节点并调用startup:

this.widget1 = new MyWidget();
this.widget1.placeAt(this.theDomNode, "only");
this.widget1.startup();

一切正常。 widget1和theDomNode是完成所有这些操作的对象的属性,因此'this'引用。

稍后我希望根据用户操作在那里显示不同的小部件,所以我用widget2重复完全相同的过程:

this.widget2 = new MyOtherWidget();
this.widget2.placeAt(this.theDomNode, "only");
this.widget2.startup();

这也很好。

当我想要返回先前显示的小部件时,会出现问题。在这种情况下,我不创建该窗口小部件的新实例,因为它已经实例化并被引用(例如,通过this.widget1等)。所以,我这样做:

this.widget1.placeAt(this.theDomNode, "only");
this.widget1.startup();

但是,这只是清除了DomNode的内容,并没有显示widget1的内容。同样,当显示任何其他小部件时,如果它不直接跟随实例化。似乎当一个小部件被domNode替换为另一个小部件时,它就会失去它的dom并且无法重复使用。

有谁知道如何解决这个问题的最佳方法?我想到的一个选项是为每个小部件设置一个domNode,然后将domNode本身的display属性更改为none以隐藏小部件,然后返回以显示它。然而,在加入这个额外级别之前,我认为我会抛出问题,以防有更简单的方法。

由于 西蒙

0 个答案:

没有答案