Динамически добавлять узлы при нажатии на существующий узел
Я пытаюсь создать иерархический график (с направлением влево-вправо), используя sigmaJS dagre с 1-го уровня, а затем пользователь может расширить график, нажав на узел. Я прикрепил событие clickNode к графику. Моя проблема в том, что, узел, по которому щелкают, переместит свою позицию, можно ли исправить положение / координату узла
Прикрепленный код, который я попробовал в этом посте.
<div id="container">
<style>
#graph-container {
top: 0;
bottom: 0;
left: 0;
right: 0;
position: absolute;
}
</style>
<div id="graph-container"></div>
</div>
g.nodes.push(...............)
g.edges.push(................)
s = new sigma({
graph: g,
renderer: {
container: 'graph-container',
type: 'canvas'
},
settings: {
minNodeSize: 6,
maxNodeSize: 6,
minEdgeSize: 3,
maxEdgeSize: 3
}
});
layout();
function layout(){
dagreListener = sigma.layouts.dagre.configure(s, {
directed: true,
rankdir: 'LR',
easing: 'quadraticInOut',
duration: 800
});
// Bind the events:
dagreListener.bind('start stop interpolate', function(e) {
console.log(e.type);
});
// Start the DAG layout:
sigma.layouts.dagre.start(s);
}
s.bind('clickNode', function(e) {
s.graph.read({nodes: nodes, edges: edges});
layout();
});