dijit.tree केवल स्टोर का उपयोग कर सभी कार्यक्षमता को ध्वस्त करने के तरीके को कैसे कार्यान्वित करें?

मेरे पास एक आलसी लोडिंग dijit.tree है जिसे मैं अपने डेटा लोड होने के बाद कई स्थानों पर पुन: उपयोग करना चाहता हूं। लेकिन अगर मैं स्टोर ऑब्जेक्ट को अन्य पेड़ों में प्रतिस्थापित करता हूं जिसमें सबसे अधिक डेटा होता है, तो नोड्स सभी का विस्तार होता है। मैं स्टोर को संशोधित करना चाहता हूं ताकि नए पेड़ में स्टोर के रूप में सेट करने से पहले सभी आइटम ध्वस्त हो जाएं। क्या आप मुझे बता सकते हैं कि इसे कैसे प्राप्त किया जाए?

0
जोड़ा
विचारों: 1

1 उत्तर

You cannot use the store for this, as it does not contain any information of the state of the tree nodes. This 'magic' is performed via TreeNode, see some examples here

'सही समाधान' यह पता लगाने के लिए होगा कि आपको किन पथों को विस्तारित करने की आवश्यकता है और फिर वांछित ट्रीनोड्स में जाने के लिए अपने पेड़ के पथ को सेट करें।

However, since your lazyloading, you need to check the state - while initializing a tree it should be UNCHECKED. However there is a cookie-functionality inbuilt which probably is kicking in, make sure to create new tree's with { persist:false }

You could also extend your tree, so that it will accept collapseChildren(TreeNode) as follows - and then call tree.set("path", [pathsArray]);

collapseChildren : function(top) {
        var self = this;
        if(!top || !self.model.mayHaveChildren(top.item)) return;
        top.getChildren().forEach(function(n) {
                if(n.item.children) {
                        //dojo.style(n.getParent().containerNode, { overflowY: 'hidden', overflowX: 'hidden'});
                        self._collapseNode(n);
                        self.collapseChildren(n);
                }
        });
},

संपादित करें:

यदि ऑटोएक्सपैंड ध्वज कन्स्ट्रक्टर को पास किया जाता है, तो पेड़ को शुरू में सभी नोड्स के साथ दिखाया जाता है।

     

आप क्रमशः वृक्ष को संक्षिप्त और विस्तृत करने के लिए collapseAll() और expandAll() को कॉल कर सकते हैं।    http://livedocs.dojotoolkit.org/dijit/Tree-examples#id3

0
जोड़ा
मुद्दा यह है कि जब मैं पुराने पेड़ की दुकान को केवल नए पेड़ की दुकान के रूप में सेट करता हूं, तो मुझे लगता है कि नोड्स पिछले पेड़ में ठीक उसी तरह विस्तारित होते हैं। तो मुझे लगता है कि यह स्टोर पर आधारित है।
जोड़ा लेखक MozenRath, स्रोत
वे केवल तभी आग लगते हैं जब बच्चा पहले से ही आबादी नहीं है
जोड़ा लेखक MozenRath, स्रोत
धन्यवाद @ एमएसएचआर!
जोड़ा लेखक MozenRath, स्रोत
उपरोक्त बताए गए झूठ का उपयोग करने की कोशिश की? पेड़ पर क्लिक पेज-लोड के बीच पेड़ पथों को संग्रहीत करने के लिए एक कुकी उत्पन्न करता है, यह सोचकर कि यह वही बात हो सकती है? क्या आपके नव निर्मित पेड़ की आग XHR 'उद्घाटन' बाल कंटेनर पर है?
जोड़ा लेखक mschr, स्रोत
सुनिश्चित करें कि autoExpand ध्वज गलत है, फिर tree.set ("path", [pathsArray]) का उपयोग करें; जिन्हें आप खोलना चाहते हैं उन्हें खोलने के लिए
जोड़ा लेखक mschr, स्रोत