Domanda Funzione di chiamata d3 della libreria Javascript


Non sono in grado di capire come funziona d3.call () e quando e dove usarlo. Qui è il link del tutorial che sto cercando di completare.

Qualcuno può spiegare specificamente cosa sta facendo questo pezzo

var xAxis = d3.svg.axis()
              .scale(xScale)
              .orient("bottom");

svg.append("g").call(xAxis);

53
2017-10-09 17:32


origine


risposte:


Penso che il trucco qui sia capire che xAxis è una funzione che genera un mucchio di elementi SVG. In effetti è la funzione restituita da d3.svg.axis(). Le funzioni di scala e orientamento sono solo una parte della sintassi di concatenamento (leggi di più qui: http://alignedleft.com/tutorials/d3/chaining-methods/).

Così svg.append("g") aggiunge un elemento del gruppo SVG allo svg e restituisce un riferimento a se stesso sotto forma di una selezione (stessa sintassi della catena al lavoro qui). Quando usi call su una selezione si chiama la funzione denominata xAxis sugli elementi della selezione g. In questo caso stai facendo funzionare la funzione dell'asse, xAxis, nel gruppo appena creato e aggiunto, g.

Se ciò non ha ancora senso, la sintassi sopra è equivalente a:

xAxis(svg.append("g"));

o:

d3.svg.axis()
      .scale(xScale)
      .orient("bottom")(svg.append("g"));

80
2017-10-09 20:34