如何更改 mxCell 的 parent

How to change parent of mxCell

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

childCell.setParent(parent单元格);

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

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

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

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

更改父级

您只需要调用模型的添加函数如下。

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