La boîte de dialogue Dojo ferme l'événement sur X (en haut à droite)
Im en utilisant Dojo pour créer une simple boîte de dialogue pour créer un utilisateur dans un système. Le problème est que j'obtiens l'erreur:
Tried to register widget with `id==user_submit` but that `id` is already registered
user_submit
est un Dojo bouton j'ai de la finition de la forme à l'intérieur de la boîte de dialogue. Quand j'ai fermer la boîte de dialogue en cliquant dessus et en soumettant le formulaire n'est pas un problème dans l'ouverture de la boîte de dialogue nouveau (dans l'événement click sur le bouton, j'ai cette ligne de code:
dijit.byId("user_submit").destroy();
mais si je ferme la boîte de dialogue [x]-un lien /bouton dans le coin en haut à droite je n'ai pas détruire le bouton et ne pouvez pas ouvrir la boîte de dialogue de nouveau sans avoir à recharger la page.
Comment puis-je obtenir Dojo de détruire le bouton ou comment une surcharge de la cliquez sur [X]-un lien /bouton, donc je peux écrire le détruire de commande pour le bouton?
source d'informationauteur Thor A. Pedersen
Vous devez vous connecter pour publier un commentaire.
"Developer shouldn't override or connect to this method"
pour "onCancel" voir la documentation.Une meilleure solution est:
Trouvé une solution. en utilisant dojo.connect().
Aurait postet ce peu de temps après que j'ai posté la quistion, mais je n'avais pas assez de points, voici donc la réponse, là encore, juste un peu de retard 🙂
IIRC, le
onClose
extension événement est appelé lorsque vous cliquez sur le X chose, de sorte que vous pouvez essayer de mettre votre code de nettoyage.Vous pourriez aussi envisager de sidesteping le problème entièrement. Peut-être que vous n'avez pas besoin de détruire le widget, mais plutôt de réutiliser le même? Vous pouvez également faire un widget test d'existence avant de le créer encore une fois, détruisant l'ancienne version si elle est toujours en vie.
Vous pouvez remplacer
onCancel()
méthode comme indiqué ci-dessus ou vous pouvez vous joindre à l'événementdijit.dialog.closeButtonNode
domElement.dijit.dialog.closeButtonNode
est le nom dedata-dojo-attach-point
attribut pour le bouton fermer.Exp:
En appuyant sur le X en haut de la boîte de dialogue "onCancel" de l'événement est déclenché.
Disposer de l'élément.