que programming dijit demos caracteristicas dojo widget toolkit

programming - Dojo y anular el registro de widgets.



dojo toolkit pdf (4)

Soy nuevo en el kit de herramientas de Dojo. Estoy recibiendo el error

Tried to register widget with id=myButton but that id is already registered

Cada vez que intento cargar contenido dojo dos veces (lo que significa que carga contenido HTML a través de jQuery.Cargue en un contenedor div). ¿Hay alguna forma de anular el registro de los widgets ya registrados en el dojo? He visto algunos ejemplos, pero realmente no los hago trabajar.

Mi botón:

<button dojoType="dijit.form.Button" id="myButton">button</button>



Creo que sería mejor eliminar el ID de su botón y acceder a él usando un punto adjunto. Básicamente, <button dojoType="dijit.form.Button" data-dojo-attach-point="myButton">button</button> hacer <button dojoType="dijit.form.Button" data-dojo-attach-point="myButton">button</button>

luego, en su código, podría acceder a él de la siguiente manera: this.myButton.... sin embargo, no estoy seguro de qué versión de dojo está utilizando. Esto solucionará cualquier problema de identificación, ya que el dojo le asignará una identificación única automáticamente.


Esto funcionó para mí:

dijit.byId( ''myButton'' ).destroy( true );


Si desea anular el registro de widgets específicos, puede usar sus métodos destroy() o destroyRecursive() . El segundo destruye todos los widgets dentro del que estás destruyendo (es decir, llamar a destroyRecursive en un widget de formulario también destruirá todos los componentes del formulario).

En su caso, parece que lo mejor sería hacer esto antes de jQuery.load -

var widgets = dijit.findWidgets(<containerDiv>); dojo.forEach(widgets, function(w) { w.destroyRecursive(true); });

El código anterior anulará el registro de todos los widgets en <containerDiv> y conservará sus Nodos DOM asociados. Para destruir los nodos DOM, pase false a destroyRecursive en destroyRecursive lugar.

Referencia:

http://dojotoolkit.org/api/1.3/dijit/_Widget/destroyRecursive