如果复合节点在其他父节点之间有连接,但子节点之间没有连接,则它们似乎不遵守布局。最好的展示方式是修改他们的 DAGRE 示例:
http://jsbin.com/gist/e52c2fbc0b09edd6ec46?html,output
用以下内容替换他们的数据:
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()来仅在父节点上运行布局,然后在其余节点上运行网格,但这似乎也不起作用。
有没有一个例子可以说明如何处理这种情况?它出现在他们网站上的两个示例中(除非我弄错了),他们正在手动设置 parent 的位置。
我能看到的唯一解决方法是在子项之间添加虚拟链接以使布局运行,然后从图表中过滤它们/之后隐藏它们,但我觉得有一种方法可以做到这一点,我没有看到...
谢谢!
最佳答案
复合图不是标准图,因此只有明确声明复合支持的布局才能处理特殊的复合情况。 Dagre 是一个外部库,没有化合物的概念。
关于javascript - cytoscape.js 复合节点忽略布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862485/