【问题标题】:Remove Cell Does not work after Loading mxGraph using Decode XML使用解码 XML 加载 mxGraph 后删除单元格不起作用
【发布时间】:2020-07-03 06:41:49
【问题描述】:

我将我的 mxModel 保存在数据库中。 保存模型后,mxModel xml 将保存在数据库中。 因此,当用户想要编辑该模型时,我检索模型并使用以下代码对其进行解码

var xmlDocument = mxUtils.parseXml(mxModel);
var decoder = new mxCodec(xmlDocument);
                    
var node = xmlDocument.documentElement;
decoder.decode(node, graph.getModel());
let elt = xmlDocument.documentElement.firstChild;

除此之外,我在图表中还有一些选项可以进一步编辑图表。像添加,复制,删除等。 所有的添加操作都工作正常,但试图删除单元格的操作并没有实时反映在图表中。

例如,对于删除操作,我在 beginUpdate() 和 endupdate() 下有以下代码

graph.getModel().beginUpdate();
graph.removeCellsFromParent([selectedCell]);
graph.getModel().remove(e[0]);
graph.getModel().remove(selectedCell);
graph.getModel().endUpdate();

通过此操作,删除正在发生,但它不会反映在屏幕上。我得出这个结论是因为当我保存模型并重新加载它时,已删除的单元格不再存在。

我需要实时显示删除。能否请您指出一些相同的方向。

【问题讨论】:

  • 我也遇到了同样的问题你找到答案了吗,请告诉我

标签: mxgraph


【解决方案1】:

我们有 removeCells 的演示 在代码中调用graph.removeCells() 你可以看到here

如果对您没有帮助,请创建一个在线演示(codePen等)并在这里写。

【讨论】:

  • 正如我提到的,graph.removeCells() 仅在使用 graph.insertvertex() 创建单元格时才有效,但在我的情况下,我是通过编解码器解码器加载它,在这种情况下它无法显示一旦我执行 graph.removeCells() 就会发生变化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 2013-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多