2016-07-28 13 views
-2

D3 svg funktioniert Graph funktioniert nicht, wenn ich link.source und link.target den aus DB abgerufenen Integer-Werten zuweise. Wenn ich Index beginnend mit 0-Diagramm zuweisen, funktioniert das gut, aber es schlägt mit dem obigen Fehler fehl, wenn ich link.source und .target mit Identifikatorwerten festlege, die von db abgerufen werden.D3: Die Eigenschaft 'Gewicht' von undefinierter oder Null-Referenz kann nicht abgerufen werden

+4

Ich denke, wir werden hier [mcve] brauchen. –

Antwort

-2
var edges = []; 
json.Links.forEach(function(e) { 
    var sourceNode = json.Nodes.filter(function(n) { 
     return n.Id === e.Source; 
     })[0], 
     targetNode = json.Nodes.filter(function(n) { 
     return n.Id === e.Target; 
     })[0]; 

    edges.push({ 
    source: sourceNode, 
    target: targetNode, 
    value: e.Value 
    }); 
}); 

force 
    .nodes(json.Nodes) 
    .links(edges) 
    .start(); 

var link = svg.selectAll(".link") 
    .data(edges) 
+2

Wirklich? Das soll keine Antwort sein, oder? – altocumulus

+1

Während dieses Code-Snippet die Frage lösen kann, [hilft eine Erklärung] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, um die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. –