Источник и цели не отображаются для ребер в mxGraph при кодировании в XML - PullRequest
0 голосов
/ 09 июля 2019

Я использую mxGraph для приложения, которое требует кодировать график в XML и загружать его при необходимости.

Я использую следующий код для кодирования графика

const encoder = new mxCodec();
const result = encoder.encode(graph.getModel());
const xml = mxUtils.getXml(result, true);
console.log(xml, "encoded graph xml");

для настройки mxGraph, используется следующий код

const graph = new mxGraph(this.graphContainer.nativeElement);
const parent = graph.getDefaultParent();
graph.setConnectable(true);
graph.setAllowDanglingEdges(false);
graph.getModel().beginUpdate();
const source = graph.insertVertex(parent, '1', 'Node 1', 10, 10, 200, 100, "shape=image;image=assets/images/ellipse.svg");
const target = graph.insertVertex(parent, '2', 'Node 2', 200, 200, 200, 200, "shape=image;image=assets/images/circle.svg");
graph.insertEdge(parent, '12', 'hi', source, target, 'strokeColor=black;');
graph.getModel().endUpdate();

результат, который я получаю:

<mxGraphModel><root><mxCell id="0"/><mxCell id="1"/><mxCell value="Node 1" style="shape=image;image=assets/images/ellipse.svg" id="2" vertex="1"><mxGeometry x="10" y="10" width="200" height="100" as="geometry"/></mxCell><mxCell value="Node 2" style="shape=image;image=assets/images/circle.svg" id="3" vertex="1"><mxGeometry x="200" y="200" width="200" height="200" as="geometry"/></mxCell><mxCell value="hi" style="strokeColor=black;" id="12" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell></root></mxGraphModel>

в приведенном выше XML есть элемент mxCell с edge = "1", но источник и цель отсутствуют в этом элементе.

Я не знаю, что я делаю здесь неправильно,Я следовал за https://jgraph.github.io/mxgraph/docs/js-api/files/io/mxCodec-js.html документом.

...