由于性能原因,我侦听“ INITIAL LAYOUT COMPLETED”事件,该事件将添加到linktemplate中的optionsvoidsNodes。当我设置它时,路由不会更新,并且节点重叠。
this._diagram.addDiagramListener('InitialLayoutCompleted', () => {
this._diagram.linkTemplate =
$(go.Link, // defined below
{
routing: go.Link.AvoidsNodes, // go.Link.AvoidsNodes
},
new go.Binding('points', 'points').makeTwoWay(),
$(go.Shape, { stroke: '#fff', strokeWidth: 1 })
);
const Pointers: any = this._diagram.model.toJson();
答案 0 :(得分:0)
您既不想修改现有模板,也不想替换它们。后者会导致重新创建所有链接。
相反,在链接模板中将 Link.routing 保留为AvoidsNodes
。
然后在“ InitialLayoutCompleted” DiagramEvent 侦听器中,您可以执行以下操作:
this._diagram.links.each(l => l.routing = go.Link.AvoidsNodes);
更好的是,您只能对那些需要它的链接执行此操作。