×
Creating solutions

Ako odstraňovať widgety frameworku Dojo z DOM

Dojo v rámci odstraňovania vytvorených widgetov používa viacero metód pričom pre programátorov sú dôležité len dve z nich. Ide o metódy destroyRecursive() a destroy(). Ďalšie metódy (destroyDescendants(), destroyRendering() a uninitialize()) sú obsiahnuté v spomenutých metódach.
Životný cyklus widgetov je definovaný v module dijit/_WidgetBase.
Príklad: Prehľad metód pre zrušenie widgetu.
1
2
3
4
5
widget.destroy();
widget.destroyDescendants();
widget.destroyRecursive();
widget.destroyRendering();
widget.uninitialize();

Metóda destroyRecursive()

Metóda destroyRecursive() odstráni potomkov, teda widgety v containerNode, a aj samotný widget.
Prehľad volaní v metóde destroyRecursive()
  • destroyRecursive()
    • destroyDescendants()
    • destroy()

Metóda destroy()

Metóda destroy() odstráni len widget, nie potomkov - widgety v containerNode. Ak sa v domNode nachádzajú aj ďalšie widgety, je aplikovaná aj metóda destroyRecursive(). Metóda nie je aplikovaná na widgety v containerNode. Tomu bráni nasledujúci zápis.
Príklad: Volanie metódy destroy(), ktorá volá destroyRecursive().
1
2
array.forEach(registry.findWidgets(this.domNode,
this.containerNode), destroy);
Prehľad volaní v metóde destroy()
  • destroy()
    • destroyRendering()
    • destroyRecursive() - len ak je widget tvorený inými widgetmi
    • uninitialize()
Príklad: Pozor na modul dgrid/selector.
1
2
3
4
5
6
var GridMixin = declare([
Grid,
DijitRegistry,
/*selector,*/ // alias for dgrid/selector
Selection,
Keyboard]);

Záver

Pri práci s pluginom dgrid je potrebné dávať pozor na modul dgrid/selector. Tento modul nesmie byť súčasťou metódy declare(), ktorá mixuje ďalšie moduly pre vytvorenie finálneho dgridu. V opačnom prípade pri odstraňovaní dgridu z DOM nastane chyba.


Dojo,destroy,destroyDescendants,destroyRecursive,destroyRendering,uninitialize
No part of this article may be reproduced without mention of the author and URL to this website.
For more information, see the About section.

Comments

Article has no comments.

Add a comment

Name (required)
Website
Message (required)
Submit
From latest