Я вижу много dagre-D3 образцов кода, которые начинаются так:dagreD3 - Объекты Renderer и DiGraph устарели? Как сделать переходы и макеты?
var g = new dagreD3.Digraph();
var renderer = new dagreD3.Renderer();
var layout = dagre.layout();
Но я не могу создать эти 3 объекта, я получаю «не функцию» ошибка JavaScript вместо. Я ссылка на «последние» библиотеки dagreD3 по адресу:
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="http://cpettitt.github.io/project/dagre-d3/latest/dagre-d3.js"></script>
я могу получить рабочий график, используя вместо того, чтобы эти объекты и код, который я нахожу в других примерах:
var g = new dagreD3.graphlib.Graph();
var inner = d3.select("g");
var render = new dagreD3.render(); // Create the renderer
render(inner, g); // Run the renderer.
Так что мое предположение что объекты DiGraph и Renderer являются «старыми» и устаревшими, это правильно? Если нет, почему я не могу создать объекты Renderer и DiGraph? Я полный нуб?
Если Renderer и Digraph объекты фактически устарели, как я могу получить макеты и/или включить переходы, как описано в этой теме и, используя образец кода нашел там https://github.com/cpettitt/dagre-d3/issues/31:
// Custom transition function
function transition(selection) {
return selection.transition().duration(500);
}
renderer.transition(transition);
Все, что я действительно хочу сделать, это удалить узел и/или ребро из графика и перевести его в новый макет. Я думаю, это будет выглядеть примерно так:
g.transition().removeNode(d);
g.transition().removeEdge(v);
Лучшее, что я могу получить работу это:
g.removeNode(d);
g.removeEdge(v);
render(inner, g);
, который «перескакивает» с новой компоновкой вместо плавного перехода. Я новичок в D3 и все еще учился - Что мне не хватает? Спасибо за вашу помощь.
Но да, я думаю, вы правы ре - неодобрение и т.д. – Rich