2012-06-13 18 views
15

का उपयोग कर बैकबोन.जेएस में प्रस्तुत करना backbone.js में, एक व्यू का रेंडर फ़ंक्शन अटैच किए गए HTML उत्पन्न करता है जिसे बाद में डोम से जोड़ा जा सकता है।d3.js और svgs

वर्तमान में, मेरे लिए एक एसटीजी संलग्न करने के लिए मेरे पास HTML में मौजूदा लक्ष्य होना है। मैं फिर svg में तत्वों को सम्मिलित करने के लिए डेटा/प्रवेश पैटर्न का उपयोग करें। क्या dom3 को इसे संलग्न किए बिना svg उत्पन्न करने के लिए d3.js प्राप्त करने का कोई तरीका है?

var svg = d3.select("#target").append('svg') 
    .attr("viewBox","0 0 100 100"); 

svg.selectAll("circle") 
    .data(data) 
    .enter().append("circle") 
     .attr("r", 10) 
     .style("fill", "black"); 

वैकल्पिक रूप से, क्या सामान को जोड़ने के लिए एक unattached डोम तत्व के साथ d3 प्रदान करना संभव है? कुछ इस तरह? D3.js प्रलेखन पता चलता है कि चयन नोड्स स्वीकार कर सकते हैं, लेकिन अगले मेरे लिए काम नहीं करता है या तो

var svg = d3.select(this.$el).append('svg') // Uncaught TypeError: Object [object Object] has no method 'appendChild' 
    .attr("viewBox","0 0 100 100");  

svg.selectAll("circle") 
    .data([1,2,3]) 
    .enter().append("circle") 
     .attr("r", 10) 
     .style("fill", "black"); 
+2

क्या आपने 'd3.selectAll ([this.el]) 'की कोशिश की है? डी 3 किसी jQuery ऑब्जेक्ट से खुश नहीं हो सकता है, यह एक वास्तविक सरणी चाहता है। –

+0

मैंने कोशिश की है (काम नहीं करता)। वैसे, डी 3 प्रलेखन मैं इस बात का जिक्र कर रहा था कि डी 3 जेक्री ऑब्जेक्ट्स के साथ अच्छी तरह से खेलता है। https://github.com/mbostock/d3/wiki/Selections#wiki-d3_select -> "ये विधियां नोड्स को भी स्वीकार कर सकती हैं, जो कि jQuery या डेवलपर टूल जैसे तृतीय-पक्ष पुस्तकालयों के साथ एकीकरण के लिए उपयोगी है" – kumikoda

उत्तर

12

मैं इस पोस्ट SVG not rendering properly as a backbone view

d3.select(this.el) 

काम कर देता है में जवाब मिल गया!

+3

हां, डी 3 jquery वस्तुओं का चयन नहीं कर सकते हैं। 'd3.select (यह। $ el [0]) 'भी काम करना चाहिए। –

+0

उत्कृष्ट, बहुत बहुत धन्यवाद। –

+0

बस जो मैं खोज रहा हूं! धन्यवाद!! – andyengle