Szybkie pytanie o łączenie danych. Powiedzmy, że mam kilka elementów, z których każdy zawiera. Kiedy początkowo dołączam dane do, to są one automatycznie dziedziczone przez elementy, które dołączam do wyboru wejścia.Dziedziczenie danych łączy się z
Po zmianie danych i ponownym powiązaniu z nimi oczekiwałem, że elementy będą pobierać nowe dane, ale tak się nie stało.
Do tego musiałem wyraźnie ponownie powiązać dane na niższym poziomie jak ten uchwyt:
gElements.selectAll("circle")
.data(function(d) { return [d]; }
.enter().append("circle");
ten obsługuje zarówno sprawy tworzenie i późniejsze ponowne wiązanie. Ale wydaje się, że jest to zbyteczne, ponieważ zwracanie [d] jest zasadniczo tym, co dzieje się automatycznie z początkowym dziedziczeniem danych z elementu nadrzędnego.
Czy to podejście jest właściwym sposobem na poradzenie sobie z tym, czy gdzieś tu jestem zdezorientowany?
Tak, masz rację, mam tylko 1 okrąg na. Nie zdawałem sobie sprawy, że wybranie spowodowało dziedziczenie danych, ale widzę w dokumentacji, że tak właśnie jest. Uważam, że jest to trochę sprzeczne z intuicją, ponieważ zawsze myślałem o akcie wyboru jako operacji tylko do odczytu, ale ten jeden przypadek rzeczywiście powoduje zmianę węzła. –