Как сделать ссылку на всю ссылку после инициализации - PullRequest
0 голосов
/ 13 мая 2019

Я слушаю событие «INITIAL LAYOUT COMPLETED», чтобы добавить к шаблону связи параметр avoidsNodes по соображениям производительности. Когда я его устанавливаю, маршруты не обновляются и перекрывают узлы.

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 голосов
/ 13 мая 2019

Вы не хотите изменять существующие шаблоны и не хотите их заменять. Последнее вызывает повторное создание всех ссылок.

Вместо этого оставьте Link.routing как не AvoidsNodes в шаблоне ссылки.

Затем в вашем слушателе "InitialLayoutCompleted" DiagramEvent вы можете сделать что-то вроде:

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

Лучше, вы могли бы сделать это только для тех ссылок, которые нуждались в этом.

...