2016-04-13 12 views
0

parametreleri: https://github.com/square/crossfilter/tree/gh-pages (html dosyası)Geri arama ben gelen kod D3 kısmını anlamaya çalışıyorum gizemi

Ben çıkarılan ve basitleştirilmiş kod bundan sonra arkasında mucizenin ne merak ediyorum. Sorum, parametrelerin render işlevine nasıl geçirileceğidir.
this Anlayışımda grafik nesnesinin kendisi karşılık gelir, ancak method parametresi nereden geliyor? Kural/mantık nedir? chart(div) işlevine karşılık geliyor gibi görünüyor.

var charts = [ 
    barChart() 
     .dimension(hour) 
     .group(hours) 
     ..., 
    barChart() 
     .dimension(delay) 
     .group(delays) 
     ..., 
    ... 
    ] 

var chart = d3.selectAll(".chart").data(charts) 

function render(method) {d3.select(this).call(method);} 
function renderAll() {chart.each(render);} 

function barChart() { 
    ... 
    function chart(div) { ...} 
    chart.dimension = function(_) {...}; 
    chart.round  = function(_) {}; 
    ... 
    return d3.rebind(chart, brush, "on"); 
} 

cevap

0

selection.each (fonksiyon)

akımın bu kapsamda, mevcut referans noktası d ve dizin i geçen geçerli seçimin her bir eleman için belirtilen işlevi çağırır DOM öğesi. Cevabınız için

https://github.com/mbostock/d3/wiki/Selections#each

+0

Teşekkür David, şimdi oldukça iyi 'bu" parametresini anlıyorum, ama benim için önemli nokta hala barchart nesne alt fonksiyonu gibi görünüyor yöntem parametresi (anlamaktır chart (div)) ... nasıl seçildiğini ve render işlevine nasıl gönderildiğini anlamıyorum – albh

İlgili konular