initiallayout完成后如何重新链接所有链接

时间:2019-05-13 12:24:25

标签: javascript gojs

由于性能原因,我侦听“ 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();

1 个答案:

答案 0 :(得分:0)

您既不想修改现有模板,也不想替换它们。后者会导致重新创建所有链接。

相反,在链接模板中将 Link.routing 保留为AvoidsNodes

然后在“ InitialLayoutCompleted” DiagramEvent 侦听器中,您可以执行以下操作:

this._diagram.links.each(l => l.routing = go.Link.AvoidsNodes);

更好的是,您只能对那些需要它的链接执行此操作。