Я создал тривиальный пример Dagre для динамического добавления узлов при нажатии существующих узлов на графике. Однако рендеринг создает другое относительное упорядочение внутри одного и того же слоя. Во всяком случае, вокруг этой проблемы?Поддержание относительного упорядочения при добавлении узлов в многоуровневый граф в Dagre
Fiddle доступна здесь: http://jsfiddle.net/gke2dann/
Спасибо заранее.
// Create a new directed graph
var g = new dagreD3.Digraph();
/* populate graph... see fiddle */
var renderer = new dagreD3.Renderer();
var layout = dagre.layout();
var render = function() {
layout.run(g);
renderer.run(g, d3.select("svg g"));
};
render();
svg.onclick = function(evt) {
var nodeId = evt.target.__data__;
for (var i = 0; i <= Math.random() * 10; ++i) {
var newNodeId = nodeId + "_sub" + i;
g.addNode(newNodeId, { label: "Bla" });
g.addEdge(null, newNodeId, nodeId);
}
render();
};
PS: Кроме того, есть ли способ, чтобы обновление графика использовало эти фантастические переходы d3?