Похоже, что составные узлы не подчиняются макетам, если у них есть связи между другими родителями, но у детей нет подключений. Лучший способ показать это изменить свой пример DAGRE:Комбинированные узлы cytoscape.js игнорируют макет?
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 и двумя дочерними родителями - нет.
Я попытался запустить макет только для родителей, назначив классы и пропустив макет() субграфа, а затем просто запустив сетку на остальных узлах, но это тоже не работает.
Есть ли пример где-нибудь, как обрабатывать этот случай? Он появляется в двух примерах на своем веб-сайте (если я не ошибаюсь), они вручную устанавливают положение для родителей.
Единственным обходным решением, которое я вижу, является добавление фиктивных связей между дочерними элементами, чтобы получить макет для запуска, а затем отфильтровать их из графика/скрыть после этого, но я чувствую, что есть способ сделать это. Я не смотри ...
Спасибо!