2016-05-06 7 views
1

In CytoscapeJS möchte ich einen Knoten entfernen (oder einen Knoten "ausblenden") und dann das Verhalten erhalten, dass - beim Löschen dieses Knotens - ich Randbeziehungen propagieren. Mit anderen Worten, wenn ich A -> B -> C habe, und ich lösche B, möchte ich A -> C, anstatt A und C als separate Knoten ohne Kante zwischen ihnen haben. Gibt es eine Möglichkeit, dies in Cytoscape zu tun? Oder muss ich meine eigene Lösung rollen lassen?CytoscapeJS Knoten entfernen und Kanten verschieben

+0

Ich nehme an, dass der einfachste Weg wäre, etwas wie $ ("node") zu tun. Sources(). AddEdge ($ ("node"). Target()) 'oder etwas ähnliches, yeah? –

Antwort

2

So etwas wie dies vor B entfernt:

var A = B.incomers().nodes()[0]; 
var C = B.outgoers().nodes()[0]; 

cy.add({ 
    data: { source: A.id(), target: C.id() } // ... 
}); 

Wenn B mehr als 1 Abgang oder mehr als 1 incomer hat, Sie Schleife benötigen.

+0

Das ist wirklich hilfreich. Ich werde es in ein oder zwei Tagen als akzeptiert markieren, wenn ich dies umsetze, und werde weitere Anmerkungen kommentieren, die ich für relevant halte. –

Verwandte Themen