У меня есть следующий ОЧЕНЬ базовый c пример, и я, к сожалению, не могу сделать эту работу:
import jQuery from 'jquery';
import {
mxClient,
mxGraph,
mxUtils,
mxCodec
} from "mxgraph/javascript/mxClient";
function main(container)
{
// Checks if the browser is supported
if (!mxClient.isBrowserSupported())
{
// Displays an error message if the browser is not supported.
mxUtils.error('Browser is not supported!', 200, false);
}
else
{
// Creates the graph inside the given container
var graph = new mxGraph(container);
var xml = '<root><mxCell id="2" value="Hello," vertex="1"><mxGeometry x="20" y="20" width="80" height="30" as="geometry"/></mxCell><mxCell id="3" value="World!" vertex="1"><mxGeometry x="200" y="150" width="80" height="30" as="geometry"/></mxCell><mxCell id="4" value="" edge="1" source="2" target="3"><mxGeometry relative="1" as="geometry"/></mxCell></root>';
var doc = mxUtils.parseXml(xml);
var codec = new mxCodec(doc);
var elt = doc.documentElement.firstChild;
var cells = [];
while (elt != null)
{
cells.push(codec.decode(elt));
elt = elt.nextSibling;
}
graph.addCells(cells);
}
};
jQuery(document).ready(function() {
main(jQuery("#container")[0]);
});
Функция main
была взята непосредственно из документации mxGraph
API. ( ссылка, третий пример ).
Мой HTML код для этого очень прост:
<div id="graphContainer"></div>
Я использую webpack
для объединения файлов, и mxGraph@4.0.9
.
Когда я запускаю приведенный выше код, моя консоль всегда выдает ошибку TypeError: cell.getParent is not a function mxClient.js:39786
.
Я нажимаю, проблема может заключаться в том, что мой mxCodec
не декодируется XML правильно, потому что он возвращает javascript DOM Nodes
вместо объектов, поэтому mxClient
не может найти функцию getParent
. Но если это так, что я делаю не так?