Mein Inhalt wird durch Ajax ersetzt, aber manchmal hat ein Element dieselbe ID auf zwei Seiten (dh ein Foto auf der Homepage hat dieselbe ID auf der Galerieseite). Dies bedeutet, dass, wenn dojo.parser.parse genannt wird, werden die Widgets versuchen, erneut hinzugefügt werden, und die folgenden Fehler ausgelöst:dojo: zerstöre alle Widgets durch dom node
Error: Tried to register widget with id==____ but that id is already registered
Idealerweise, was ich möchte ist zu tun, laufen destroyRecursive auf die DOM-Knoten, den der AJAX ersetzt. Ich habe sowohl die unten versucht, aber weder Arbeit (ich glaube destroyRecursive für Widgets nicht DOM ist?):
dojo.byId('main').destroyRecursive();
dijit.byId('main').destroyRecursive();
Gibt es ein guter Weg, dies zu tun, oder muss ich versuchen und sicherzustellen, dass alle meine IDs sind anders?
Große Antwort dank – Ashley
+1 wirklich guter Anwendungsfall für ContentPane –
AMD stellt fest: dojo.forEach - Import "Dojo/_base/array", wie Array, dann Array.ForEach mit | dijit.findWidgets - Import "Dijit/Registrierung" dann mit Registry.FindWidgets – Deejers