Javascript 如何在gojs中将节点添加到父节点(当前选定的节点)?

Javascript 如何在gojs中将节点添加到父节点(当前选定的节点)?,javascript,gojs,Javascript,Gojs,我写的是 function attachlink() { var url = "https://www.google.co.in"; var diagram = myContextMenu.diagram; var node = new go.Node(go.Panel.Auto); var shape = new go.Shape(); shape.figure = "RoundedRectangle"; shape.fill = "lightblue"; node.add(shape); v

我写的是

function attachlink() {
var url = "https://www.google.co.in";
var diagram = myContextMenu.diagram;
var node = new go.Node(go.Panel.Auto);
var shape = new go.Shape();
shape.figure = "RoundedRectangle";
shape.fill = "lightblue";
node.add(shape);
var textblock = new go.TextBlock();
textblock.text = "Hello!";
textblock.margin = 5;
textblock.cursor = "pointer";
textblock.click = function (e, obj) { window.open(url) };
node.add(textblock);
//diagram.add(node);
//var diagram = myContextMenu.diagram;
var it = diagram.selection.iterator;
while (it.next()) {
    var part = it.value;
    if (part instanceof go.Node) {
       part.addNodeData(node);
    }
}
diagram.commitTransaction("color nodes");
}
我在这部分代码中遇到了问题

 while (it.next()) {
    var part = it.value;
    if (part instanceof go.Node) {
       part.addNodeData(node);
    }
}
我认为这行代码没有将节点附加到当前选定的节点

 part.addNodeData(node);
addNodeData是GoJS中模型的一个函数。在本例中,添加一个GraphObject(以编程方式构建到父节点的可视化树中的go.Node)需要在父节点上调用add

parentNode.addchildNode

这与将go.Shape和go.TextBlock添加到以编程方式构建的节点时使用的函数相同

但是,使用这种方法需要担心的一件事是,在myDiagram.selection中为每个GraphObject添加对同一go.Node的引用。您可能要做的是构建要添加到while循环中选定的每个元素的go.Node,这样每次都会调用构造函数,并且您要向每个选定元素添加不同的go.Node,而不是相同的元素