javascript - cytoscape.js 复合节点忽略布局?

标签 javascript layout cytoscape.js cytoscape

如果复合节点在其他父节点之间有连接,但子节点之间没有连接,则它们似乎不遵守布局。最好的展示方式是修改他们的 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/

相关文章:

javascript - 我怎样才能创建这样的表格?

android - android :widgetLayout and android:layout for preference?之间的区别

javascript - 在BFS cytoscape Javascript中获取nodeID

javascript - 如何将html标签添加到cytoscape图形节点

jquery - 在 Cytoscape.js 中查找 x,y 位置的元素

javascript - 如何从其他函数获取变量的值

javascript - 晚餐成本计算器无法将字符串转换为整数

javascript - 在网页底部和接近顶部之间动态调整元素的大小

android - 全屏使用 WebView 和 RelativeLayout 时的奇怪行为

c++ - 遵循除了内容之外的布局