【问题标题】:cytoscape.js compound nodes ignoring layout?cytoscape.js 复合节点忽略布局?
【发布时间】:2017-02-13 05:18:01
【问题描述】:

如果复合节点在其他父节点之间存在连接,则复合节点似乎不服从布局,但子节点没有连接。最好的展示方式是修改他们的 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() 传递给子图,然后仅在剩余节点上运行网格,仅在父节点上运行布局,但这似乎也不起作用。

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

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

谢谢!

【问题讨论】:

    标签: javascript layout cytoscape.js cytoscape


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多