2016-12-02 7 views
0

Ich benutze cytoscape.js für einen meiner Anwendungsfälle. Hier bevorzuge ich es, den Graphen nur mit Knoten am Anfang anzuzeigen, wie unten gezeigt.Wie setze ich Kanten mit JSON in cytoscape.js

var cy1 = cytoscape({ 
    container: document.getElementById('cy'), 
    elements: { 
     nodes: countriesJSON 
    }, 
    style: [ 
    { 
     selector: 'node', 
     style: { 
      'background-color': '#666', 
      'label': 'data(id)' 
     } 
    }, 
    { 
     selector: 'edge', 
     style: { 
      'width': 1, 
      'line-color': '#aaa', 
     } 
    } 
    ] 
}); 

cy1.layout({ 
     name: 'circle' 
}); 

nun in einer Funktion, werde ich die Kanten bilden, wie wie diese

function myfunc(){ 

    ... 
    ... 
    allRoutes.map(function(d){ 
      var inner={}; 
      var obj = {} 
      inner["id"]="edge"+index     
      inner["source"]=data[0] 
      inner["target"]=data[1]     
      obj["data"]=inner 
      allLegsJSON[i]=obj; 
      i++; 
      }) 
    ... 
    ... 

    cy1.elements({ edges: allLegsJSON }); 
} 

Sobald Kanten erstellt werden, möchte ich Kanten wie oben an den Graphen zuzuweisen. Dieser Code funktioniert jedoch nicht. Kann mir jemand sagen, wie ich das mache? Ich möchte die Kanten zuweisen und dann das cy1-Diagramm aktualisieren.

+0

Beachten Sie, dass JSON wörtliche Objekt nur ein JavaScript ist nicht wirklich. –

Antwort

0

Dies tat dies

cy1.add({ edges: allLegsJSON }); 
+0

Während dieses Code-Snippet die Frage lösen kann, hilft [einschließlich einer Erklärung] (// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) wirklich, die Qualität Ihres Posts 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. Bitte versuchen Sie auch nicht, Ihren Code mit erklärenden Kommentaren zu füllen, dies reduziert die Lesbarkeit sowohl des Codes als auch der Erklärungen! – kayess

Verwandte Themen