首页 > 解决方案 > 链接标签彼此重叠

问题描述

我创建了两个正方形,并通过它们的端口将它们与链接连接起来。但是当我创建两个以上的链接时,它们的链接标签开始重叠(您可以在下面的屏幕截图中看到这一点)。GoJS 是否有一些选项可以正确对齐或分离标签?

在此处输入图像描述

标签: javascriptgojs

解决方案


我认为问题可能是您正在使用多个端口。假设端口位于节点的一侧,则链接可以与节点连接的位置没有太多选择。

相反,具有单个端口的节点的默认行为可能是您正在寻找的:

  function init() {
    var $ = go.GraphObject.make;

    myDiagram =
      $(go.Diagram, "myDiagramDiv");

    myDiagram.nodeTemplate =
      $(go.Node, "Auto",
        new go.Binding("location"),
        $(go.Shape,
          { fill: "white", portId: "" },
          new go.Binding("fill", "color")),
        $(go.TextBlock,
          { margin: 8 },
          new go.Binding("text"))
      );

    myDiagram.linkTemplate =
      $(go.Link,
        //{ curve: go.Link.Bezier },
        $(go.Shape),
        $(go.Shape, { toArrow: "OpenTriangle" }),
        $(go.TextBlock, { background: "white" },
          new go.Binding("text"))
      );

    myDiagram.model = new go.GraphLinksModel(
    [
      { key: 1, text: "Alpha", color: "lightblue", location: new go.Point(0, 0) },
      { key: 2, text: "Beta", color: "orange", location: new go.Point(200, 50) },
      { key: 3, text: "Gamma", color: "lightgreen", location: new go.Point(50, 200) }
    ],
    [
      { from: 1, to: 2, text: "12" },
      { from: 1, to: 2, text: "a long label" },
      { from: 2, to: 1, text: "345" },
      { from: 1, to: 3, text: "13" },
      { from: 1, to: 3, text: "short" },
      { from: 3, to: 1, text: "34567890" }
    ]);
  }

产生:

具有可变宽度链接标签的多个链接

或者,如果您指定 Bezier 曲线链接:

多个贝塞尔链接

移动节点,您可以看到链接之间的距离如何根据链接标签的宽度而变化,因为标签不是圆形的。


推荐阅读