我从Git下载了https://github.com/jgraph/mxgraph开源代码,此应用程序的“保存”功能无法在本地使用。是否有可能在本地运行保存功能?是否需要任何配置?请帮我。
保存按钮后,单击以下错误消息
答案 0 :(得分:3)
我提供了用于本地保存和上传已保存文件的代码段
代码以导出当前图形对象的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);
答案 1 :(得分:1)
您可以使用IO软件包中的mxCodec类在本地保存。 Check out the example code here。 我不确定如何将其绑定到该特定按钮,但是找到单击保存并用编码为xml所需的三行添加/替换它时调用的函数。
至于如何获取该xml代码另存为文件,我不确定。修改“保存”按钮功能时,也许会找到该代码。最简单的方法是创建一个div并将其innerhtml替换为xml数据,然后将其复制并自己保存。