MXGraph импорт от XML - PullRequest
       49

MXGraph импорт от XML

0 голосов
/ 08 марта 2020

У меня есть следующий ОЧЕНЬ базовый 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. Но если это так, что я делаю не так?

...