我正在尝试识别jointjs上的有序元素,是否有任何方法可以将所有元素排序在一起?例如,我试图确定哪些元素是序列,以便可以在下图中组合在一起。
答案 0 :(得分:0)
可以通过遍历找到序列元素:
来自(graph.getSources()
root / parents)
给接班人(graph.getSuccessors(element [, opt])
孩子):
var rootsIdsSequence = {};
graph.getSources().forEach(function (el) {
var children = graph.getSuccessors(el);
if(children && children.length !== 0)
rootsIdsSequence[el.id] = children;
})
或来自接收器(graph.getSinks()
最后一个孩子/离开)
来源(element.getAncestors()
root / parents):
var childrenIdsSequence = {};
graph.getSinks().forEach(function (el) {
var roots = el.getAncestors();
if(roots && roots.length !== 0)
childrenIdsSequence[el.id] = roots;
})
我建议使用第一个选项,因为您的源/根可能比接收器/离开更少,有时el.getAncestors()
可能会返回空,即使链接连接到该元素也是如此。