Gojs根据nodeTemplateMap绘制templateLinks
Gojs draw templateLinks depending on nodeTemplateMap
我想根据节点模板类型设置不同的链接模板偏移量。
其实我只有一个linkTemplate
dia.linkTemplate =
$(go.Link,
// { routing: go.Link.AvoidsNodes }, // link route should avoid nodes
$(go.Shape, { stroke: 'gray', height: 12 }),
$(go.TextBlock, 'fiber_manual_record', { font: '20pt Material Icons', stroke: 'gray' },
{
segmentIndex: 0, segmentOffset: new go.Point(-9, 8),
segmentOrientation: go.Link.OrientAlong
}),
$(go.TextBlock, 'fiber_manual_record', { font: '15pt Material Icons', stroke: 'gray' },
{
segmentIndex: -1, segmentOffset: new go.Point(-1, 8),
segmentOrientation: go.Link.OrientAlong
})
);
但是我有两个 nodeTemplateMap 每个都有不同的形状。
我的问题是链接不会在同一级别开始,具体取决于使用的是哪个节点。
您可以向 link 模板添加绑定,以确定 Link.fromShortLength 或 Link.toShortLength 取决于它的节点类型。类似于:
$(go.Link,
new go.Binding("fromShortLength", "fromNode",
node => node.category === "A" ? 10 : 20),
. . .
)
显然你需要决定如何使用节点来确定Link.fromShortLength的值来使用。
我想根据节点模板类型设置不同的链接模板偏移量。
其实我只有一个linkTemplate
dia.linkTemplate =
$(go.Link,
// { routing: go.Link.AvoidsNodes }, // link route should avoid nodes
$(go.Shape, { stroke: 'gray', height: 12 }),
$(go.TextBlock, 'fiber_manual_record', { font: '20pt Material Icons', stroke: 'gray' },
{
segmentIndex: 0, segmentOffset: new go.Point(-9, 8),
segmentOrientation: go.Link.OrientAlong
}),
$(go.TextBlock, 'fiber_manual_record', { font: '15pt Material Icons', stroke: 'gray' },
{
segmentIndex: -1, segmentOffset: new go.Point(-1, 8),
segmentOrientation: go.Link.OrientAlong
})
);
但是我有两个 nodeTemplateMap 每个都有不同的形状。
我的问题是链接不会在同一级别开始,具体取决于使用的是哪个节点。
您可以向 link 模板添加绑定,以确定 Link.fromShortLength 或 Link.toShortLength 取决于它的节点类型。类似于:
$(go.Link,
new go.Binding("fromShortLength", "fromNode",
node => node.category === "A" ? 10 : 20),
. . .
)
显然你需要决定如何使用节点来确定Link.fromShortLength的值来使用。