将节点动态添加到JointJS图。在joint.layout.DirectedGraph中设置排名顺序?

时间:2015-11-17 23:26:49

标签: javascript directed-graph jointjs dagre

我在JointJS中实现了一个流程图,用户可以删除元素并添加新元素,并以各种顺序重新链接事物。该图使用了带有Dagre的joint.layout.DirectedGraph库的自动布局功能,每次删除,添加,取消链接或重新链接时都会重新组织图形。一个奇怪的问题出现了,我还不确定如何处理它。

说我有一个" fork"进程有两个输出端口,每侧一个,顶部有一个输入端口。根据数组中元素的顺序,自动布局有时可以将左侧端口的子元素放在右侧端口的子元素的右侧,因此生成的链接将被交叉。

是否有一些直接的方法来影响布局中的排名顺序?我希望当事情发生变化时我可以重新排序数组中的元素,因此从Dagre的观点来看它们更容易处理,但我不确定排序实际上是如何实现的。更好的是一些类似于z索引的属性,但是我可以设置从左到右的偏见,Dagre会尊重,但我不相信这样的东西隐藏在代码中。

有没有人有一些想法或建议我如何擦除布局以阻止这种情况发生?

非常感谢提前!

1 个答案:

答案 0 :(得分:2)

所以最后我只是测试了问题情况并改变了它们在元素数组中的顺序。实际上,Directed Graph / Dagre库按照它们存储在数组中的顺序从左到右对相同等级的元素进行排序。