能够根据要求生成端口

Ability to generate ports as per requirement

我需要一种方法,通过该方法我可以根据每个 node.So 的要求向节点添加端口,如果节点需要 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.

模板使用后不可修改。相反,让您的节点数据包含您希望该节点拥有的端口的描述数组,并将 Panel.itemArray 绑定到 属性。

请阅读https://gojs.net/latest/intro/itemArrays.html and look at samples such as https://gojs.net/latest/samples/records.html or https://gojs.net/latest/samples/dynamicPorts.html