【问题标题】:How to change parent of mxCell如何更改 mxCell 的父级
【发布时间】:2017-10-10 10:05:36
【问题描述】:

我试图在运行时更改 mxCell 的父级,但没有运气。 这是场景。 图中添加了两条泳道。 每个泳道都有一个小时候的形状。 当任何泳道中的一个形状移动到另一个泳道(拖放)时,默认情况下不会更新父级。 因此,在代码中,我正在处理 CELLS_MOVED 事件并在处理程序中,尝试将父级分配给被移动的单元格。

childCell.setParent(parentCell);

为了确保更改得到更新,我还将代码嵌入到开始和结束更新函数中。

在调试期间,我看到孩子的父母得到了更新。但是当我尝试删除父级时,新添加的子单元格不会被删除。在调试时,我发现形状再次丢失了它的父 id。

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: javascript mxgraph


    【解决方案1】:

    这应该自动处理。 graph.dropEnabled 的值是多少?如果这不起作用,请尝试使用 model.add https://jgraph.github.io/mxgraph/docs/js-api/files/model/mxGraphModel-js.html#mxGraphModel.add 更改父级

    【讨论】:

    • graph.setDropEnabled(true);这是缺失的,添加它可以解决问题。谢谢
    • 有没有办法从 dropEnabled 中排除泳道?现在我看到移动时的泳道被作为孩子添加到另一个不正确的泳道。
    • 您是否尝试过 graph.setSwimlaneNesting(false) 或覆盖 graph.getDropTarget?顺便说一句:mxGraph 的 API 规范位于 jgraph.github.io/mxgraph/docs/js-api/files/index-txt.html
    • 是的。我尝试了 setSwimlaneNesting 并且成功了。所以这是我的问题的答案。 graph.setDropEnabled(true);并且 graph.setSwimlaneNesting(false) 是我需要应用来解决我的问题的正确值集。
    【解决方案2】:

    你只需要如下调用模型的add函数即可。

    graph.getModel().add(parent, child, index); // index is optional here
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 2019-07-10
      • 2023-04-07
      相关资源
      最近更新 更多