0

如果复合节点在其他父节点之间有连接,则复合节点似乎不服从布局,但子节点没有连接。最好的展示方式是修改他们的 DAGRE 示例:

http://jsbin.com/gist/e52c2fbc0b09edd6ec46?html,输出

通过用这个替换他们的数据:

elements: {
nodes: [
{"data":{"id":"SimpleTest"}},
{"data":{"id":"child1","parent":"SimpleTest"}},
{"data":{"id":"child2","parent":"SimpleTest"}},
{"data":{"id":"subParent1"}},
{"data":{"id":"terminal0_socket","parent":"subParent1"}},
{"data":{"id":"subParent2"}},                          
{"data":{"id":"terminal1_socket","parent":"subParent2"}},
{"data":{"id":"terminal0"}},
{"data":{"id":"terminal1"}}
],
edges: [
{"data":{"source":"SimpleTest","target":"subParent1"}},
{"data":{"source":"SimpleTest","target":"subParent2"}},
{"data":{"source":"terminal0_socket","target":"terminal0"}},
{"data":{"source":"terminal1_socket","target":"terminal1"}}
]
},

布局尊重从子节点到非父节点的链接,但 SimpleTest 和两个子父节点之间的链接不被尊重。

我已经尝试通过分配类并将 layout() 传递给子图,然后只在其余节点上运行 grid 来仅在父级上运行布局,但这似乎也不起作用。

在某处有如何处理这种情况的例子吗?它出现在他们网站上的两个示例中(除非我弄错了),他们正在为父母手动设置位置。

我能看到的唯一解决方法是在子级之间添加虚拟链接以运行布局,然后从图表中过滤它们/之后隐藏它们,但我觉得有一种方法可以做到这一点,我没有看到......

谢谢!

4

1 回答 1

1

复合图不是标准图,因此只有明确声明复合支持的布局才能处理特殊的复合情况。Dagre 是一个外部库,没有化合物的概念。

于 2016-10-05T15:27:46.330 回答