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 と 2 つのサブ親の間のリンクは受け入れられません。

クラスを割り当ててlayout()をサブグラフに渡し、残りのノードでグリッドを実行することで、親だけでレイアウトを実行しようとしましたが、それもうまくいかないようです。

このケースを処理する方法の例はどこかにありますか? 彼らのウェブサイトの2つの例に表示されます(私が間違っていない限り)、彼らは手動で親の位置を設定しています.

私が見ることができる唯一の回避策は、子の間にダミーのリンクを追加してレイアウトを実行し、グラフからそれらをフィルター処理して後で非表示にすることですが、これを行う方法があるように感じますが、私は見ていません...

ありがとう!

4

1 に答える 1

1

複合グラフは標準的なグラフではないため、複合サポートを明示的に示すレイアウトのみが特殊な複合ケースを処理できると期待できます。Dagre は外部ライブラリであり、化合物の概念はありません。

于 2016-10-05T15:27:46.330 に答える