Возможность генерировать порты согласно требованию - PullRequest
0 голосов
/ 21 июня 2019

Мне требуется метод, с помощью которого я могу добавить порты к узлу в соответствии с требованиями каждого узла. Поэтому, если узлу требуется 3 порта, он должен генерировать только 3, не больше или меньше. Шаблон узла создает одинаковое количество портов для каждого узла, с которого начинается моя проблема.

Я попытался создать функцию для создания порта, а затем вызвать эту функцию в цикле, чтобы сгенерировать ни один из портов. Функция работает для генерации только одного порта, но если цикл выполняется во второй раз, он не работает. Я также пытался использовать функцию addPort из примера с динамическими портами, и это тоже не дает мне требуемого результата.

function portGen(i){
                    ports=myDiag.model.nodeDataArray[0].ports;
                    arr=new Array();
                    return $(go.Panel, "Horizontal",
                                { column: 0, row: i+2 },
                                $(go.Shape,  // the "A" port
                                { width: 2, height: 2, portId: String(i+1), toSpot: go.Spot.Left, toLinkable:true, fromLinkable:true, toMaxLinks: 1 }),
                                $(go.TextBlock, String(i+1)) ) // "A" port label
                                }

Essentially I would lke to call the portGen function multiple times based on the no of ports to be created.

1 Ответ

0 голосов
/ 21 июня 2019

Вы не можете изменить шаблон после того, как он был использован. Вместо этого добавьте в данные вашего узла массив описаний портов, которые вы хотите иметь для этого узла, и привяжите Panel.itemArray к этому свойству.

Пожалуйста, прочитайте https://gojs.net/latest/intro/itemArrays.html и посмотрите на образцы, такие как https://gojs.net/latest/samples/records.html или https://gojs.net/latest/samples/dynamicPorts.html.

...