我从 Git 下载了https://github.com/jgraph/mxgraph开源代码,这个应用程序保存功能在本地不起作用。是否有可能在本地运行保存功能?是否需要任何配置?请帮我。
保存按钮后单击以下错误消息
我从 Git 下载了https://github.com/jgraph/mxgraph开源代码,这个应用程序保存功能在本地不起作用。是否有可能在本地运行保存功能?是否需要任何配置?请帮我。
保存按钮后单击以下错误消息
我提供了用于本地保存和上传已保存文件的代码片段
导出当前图形对象的 xml 的代码
let encoder = new mxCodec();
let result = encoder.encode(graph.getModel());
let xml = mxUtils.getXml(result);
//workaround for the xml export, do not include the <mxGraphModel> tags
xml = xml.substring(xml.indexOf("<mxGraphModel>")+"<mxGraphModel>".length, xml.indexOf("</mxGraphModel>"));
上传 xml 以重新生成图形的保存状态的代码
let doc = mxUtils.parseXml(xml);
let codec = new mxCodec(doc);
codec.decode(doc.documentElement, graph.getModel());
let elt = doc.documentElement.firstChild;
let cells = [];
while (elt != null)
{
let cell = codec.decode(elt)
if(cell != undefined){
if(cell.id != undefined && cell.parent != undefined && (cell.id == cell.parent)){
elt = elt.nextSibling;
continue;
}
cells.push(cell);
}
elt = elt.nextSibling;
}
graph.addCells(cells);
您可以使用 IO 包中的 mxCodec 类在本地保存。 在此处查看示例代码。我不知道如何将它绑定到那个特定的按钮,但是找到当你点击保存时调用的函数,并用编码为 xml 所需的三行添加/替换它。
至于如何让那个 xml 代码保存为文件,我不确定。当您修改保存按钮功能时,您可能会发现该代码。简单的方法是创建一个 div 并将其 innerhtml 替换为 xml 数据,然后复制并自己保存。