बदलता है जब मैं अपनी वेबसाइट पर एक नेटवर्क दिखाने के लिए बल लेआउट उदाहरणों (http://bl.ocks.org/1153292) का उपयोग कर रहा हूं, डी 3 फोर्स लेआउट के तत्वों को कैसे अपडेट करें।अंतर्निहित डेटा
मैं उपयोगकर्ता को यह चुनने की अनुमति देता हूं कि किसी भी समय किस प्रकार के लिंक देखने के लिए। मुझे पता है कि जब मैं लिंक प्रकार ए देखना चुनता हूं, तो लिंक प्रकार बी जोड़ें और फिर लिंक प्रकार ए हटाएं ए प्रकार के बी के बने लिंक ए रंग के साथ प्रस्तुत किए जाते हैं।
यह वह कोड है जो svg आरेख के लिंक जोड़ने के लिए चलाता है। मैं इसे जोड़ने और हटाने के द्वारा सर this.links
बदल रहा हूं। आप देख सकते हैं मैं वर्ग विशेषता सेट, लेकिन यह अद्यतन करने नहीं है - यह लिंक ए के प्रकार की बनी हुई है
var path = svg.append("svg:g")
.selectAll("path")
.data(this.links)
.enter()
.append("svg:path")
.attr("class", function(d) { return "link " + d.type; })
.attr("marker-end", function(d) { return "url(#" + d.type + ")"; });
मैं वर्तमान में टिक समारोह के अंदर वर्ग विशेषता को अपडेट करके इस समस्या को हल इस पाठ्यक्रम कारण बंद है, लेकिन बहुत जरूरी काम
मैंने पढ़ा है कि एंटरप्राइज़ ऑपरेशन मौजूदा तत्वों का एक विलय चयन लौटाता है और नए भी इसलिए एटीआर ऑपरेशन को मौजूदा अपडेट करना चाहिए और नया सेट करना चाहिए।
मुझे क्या याद आ रही है?
इडौ, मुझे पता है कि यह एक पुरानी पोस्ट है, लेकिन मेरा मानना है कि मुझे वही समस्या का सामना करना पड़ रहा है, और मैं अभी भी इस समाधान को समझ नहीं पा रहा हूं। क्या आप समझा सकते हैं कि यह कैसे काम करता है - यह आपकी मूल समस्या को कैसे हल करता है? धन्यवाद। – Mars
समाधान काम करता है क्योंकि सीएक्स और सी के एटीआर अपडेट एंटर() संदर्भ के बाहर हैं, इसलिए वे हर बार होते हैं। मूल कोड में, एटीआर फ़ंक्शंस को एंटर() संदर्भ में कहा जाता है, इसलिए वे ऑब्जेक्ट पहचान के अनुसार केवल एक बार बनाए जाते हैं। मेरे लिए यह क्या था महत्वपूर्ण डेटा के बारे में सीखना डेटा के दूसरे तर्क के रूप में(): http://bost.ocks.org/mike/constancy/ – velotron