Domanda rapida sull'unione dei dati. Diciamo che ho alcuni elementi che contengono ciascuno a. Quando inizialmente aggiungo i dati al, viene automaticamente ereditato dagli elementi che accludo alla selezione di invio.Ereditarietà dei dati uniti
Quando i dati sono cambiati e lo riassembro a Mi aspettavo che gli elementi avrebbero raccolto i nuovi dati ma questo non è accaduto.
per gestire questo avevo bisogno di associare nuovamente in modo esplicito i dati al livello più basso in questo modo:
gElements.selectAll("circle")
.data(function(d) { return [d]; }
.enter().append("circle");
Questo gestisce sia il caso di creazione e la successiva rebind. Ma sembra ridondante in quanto il ritorno [d] è essenzialmente ciò che avviene automaticamente con l'ereditarietà iniziale dei dati dall'elemento genitore.
Questo approccio è il modo giusto per gestirlo oppure mi confondo da qualche parte qui?
Sì, hai ragione, ho solo 1 cerchio per. Non mi ero reso conto che selezionare causa l'ereditarietà dei dati ma vedo nella documentazione che effettivamente lo dice. Trovo questo un po 'contro-intuitivo come ho sempre pensato all'atto di selezionare come un'operazione di sola lettura, ma questo caso causa effettivamente la modifica del nodo. –