J'ai créé une disposition de force d3 et fonctionne très bien. Mon principalement le code comme ceci:.Les éléments enfants n'ont pas hérité des données parentes avec la disposition des forces D3
var nodes = [{id:1, n:'n_1',np:'0'},{id:2, n:'n_2',np:'0'}];//just for demo
//1. set data
var update = svg.selectAll(".node").data(nodes);
//2. enter
update.enter().append("svg:g").attr("class", "node")
.call(function(p){
p.append("svg:image").attr("class", "nodeimage");
p.append("svg:text").attr("class", "nodetext");
});
//3. exit
update.exit().remove();
Comme on le sait nous, d3.selectAll ("noeud") des données() Mes données. Étant donné que les éléments enfants de g hériteront des données provenant des données parentes, d3.selectAll(".nodeimage").data()
est également mes données.Ai-je raison?
En fait, mes nœuds de données proviennent du backend et les données sont mises à jour. Par exemple, certaines propriétés telles que np
ont été modifiées de 0 à 1. Nous considérons que le résultat est nodes = [{id:1, n:'n_1',np:'1'},{id:2, n:'n_2',np:'0'}]
;
Je dois rappeler la fonction ci-dessus. Cependant, d3.selectAll(".node").data()
est correct, alors que d3.selectAll(".nodeimage").data()
est faux maintenant.
Le code suivant ne fonctionnera pas correctement.
d3.selectAll('.nodeimage').attr("test", function(d){
//d.np is a wrong value.
});
Des suggestions pour moi?
Voici ma démo de jsFiddle: http://jsfiddle.net/bpKG4/663/
Et quelle est votre question? –
Il doit y avoir quelque chose d'autre, quelque part dans votre code où vous modifiez 'np'. Pourriez-vous poster le code pour un exemple complet montrant le bug? – tarulen
@tarulen Mon cher ami, j'ai terminé ma démo sur jsfiddle.S'il vous plaît jeter un oeil à it.I besoin de votre aide, Merci. – Does