2012-06-13 20 views
15

Backbone.js'de, bir görünümün render işlevi, daha sonra dom'a eklenebilen ayrılmamış html oluşturur.d3.js ve svgs kullanarak Backbone.js içinde işleme alma

Şu anda, HTML'de benim için svg eklemek için varolan bir hedefe sahip olmam gerekiyor. Sonra svg içine eleman eklemek için veri/giriş desenini kullanıyorum. D3.js, svg'yi dom'a eklemeden oluşturması için bir yol var mı?

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"); 

Alternatif olarak, d3'e bir şeyler eklemek için bağımsız bir dom öğesi ile sağlamak mümkün mü? Böyle bir şey mi? D3.js dokümantasyon düğümleri kabul edebilir seçme önerir, ama benim için çalışmıyor Aşağıdaki ya

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]) türünü denediniz mi? D3 jQuery nesnesiyle mutlu olmayabilir, gerçek bir dizi isteyebilir. –

+0

Denedim (çalışmıyor). Bu arada, d3'ün bahsettiğim belgeler, d3'ün Jquery objeleriyle iyi oynadığını gösteriyor. https://github.com/mbostock/d3/wiki/Selections#wiki-d3_select -> "Bu yöntemler, jQuery veya geliştirici araçları gibi üçüncü taraf kitaplıklarıyla entegrasyon için yararlı olan düğümleri de kabul edebilir" – kumikoda

cevap