如何在jointjs上获取所有链接的元素id?

时间:2018-02-02 16:50:48

标签: jointjs

我正在尝试识别jointjs上的有序元素,是否有任何方法可以将所有元素排序在一起?例如,我试图确定哪些元素是序列,以便可以在下图中组合在一起。

1 个答案:

答案 0 :(得分:0)

可以通过遍历找到序列元素:

  1. 来自(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;
      })
      
  2. 或来自接收器(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;
      })
      
  3. 我建议使用第一个选项,因为您的源/根可能比接收器/离开更少,有时el.getAncestors()可能会返回空,即使链接连接到该元素也是如此。