javascript - Destroying widgets in Dijit -


Dojo / Dijit TabContainer के अंदर विजेट को नष्ट करने का सही तरीका क्या है >?

प्रत्येक टैब के लिए मैं नया BorderContainer लोड कर रहा हूँ जिसमें मूल रूप से एक विजेट शामिल होता है जिसमें कोई छोटा विजेट शामिल होता है लेकिन अब कि मैं इसे टैब नियंत्रण के साथ काम करने की कोशिश कर रहा हूं ताकि नए पृष्ठ को लोड करने से पहले वह पिछले पृष्ठ को नष्ट कर दे, मैं फंस गया हूं। अभी मैं सक्रिय विजेट नाम को स्टोर करने के लिए एक वैश्विक चर का उपयोग करता हूं और जब उपयोगकर्ता एक नया टैब पर क्लिक करता है, तो वह सक्रिय वैटिबल के आईडी को ग्लोबल वैरिएबल से प्राप्त करता है और इसे नष्ट कर देता है और फिर नए सक्रिय विजेट को लोड करने में प्राप्त होता है। यह काम करता है, लेकिन जब मैंने एक बार विजेट को नष्ट कर दिया, तो मैं इसे फिर से प्रकट नहीं कर सकता मुझे यह त्रुटि मिलती है:

अनक्यूट त्रुटि: आईडी == widget_foo_container के साथ विजेट रजिस्टर करने की कोशिश की, लेकिन वह आईडी पहले ही पंजीकृत है "।

मैं उपयोग कर रहा हूँ सभी विगेट्स के लिए widget_XXX_container आईडी इसलिए XXX को विजेट का id द्वारा प्रतिस्थापित किया जाता है।

मैं वर्तमान में d ijit.byId () का उपयोग कर रहा हूं 'Widget_foo_container')। नष्ट () लेकिन यह काम करने के लिए प्रतीत नहीं होता है। मैंने भी नष्ट करने की कोशिश की है decendant () और destroyRecursive () लेकिन वे ऐसा लगता है कि शायद मैं एक ऐसा टुकड़ा याद कर सकता हूं जो वास्तव में डीओएम से इसे हटाने की बजाय विजेट को नष्ट कर देता है।

अपने विजिट्स अभी भी पंजीकृत हैं, यह देखने के लिए dijit.registry पर नज़र डालें ...

उदाहरण:

  & lt; div Id = "wrapper" & gt; div id = "btn1" डेटा- dojo- प्रकार = "dijit.form.button" & gt; बटन 1 & lt; / div & gt; & lt; div id = "btn2" डेटा- dojo-type = " Dijit.form.Button "& gt; नष्ट बटन 1 & Lt; स्क्रिप्ट टाइप = "डोजो / विधि" डेटा-डोजो-इवेंट = "ऑनक्लिक" & gt; Dijit.byId ("btn1") & amp; amp; dijit.byId ( "btn1") destroyRecursive ()।; console.debug (dijit.registry._hash); & Lt; / स्क्रिप्ट & gt; & Lt; / div & gt; & Lt; div id = "btn3" data-dojo-type = "dijit.form.button" & gt; पुनः आरंभ करें बटन 1 & lt; स्क्रिप्ट प्रकार = "डोजो / विधि" डेटा- dojo-event = "onClick" & gt; Dojo.place (नया dijit.form.Button ({label: "button1", id: "btn1"})। DomNode, "wrapper", "first"); console.debug (dijit.registry._hash); & Lt; / स्क्रिप्ट & gt; & Lt; / div & gt; & Lt; / div & gt;    

Comments