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);
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中 Model的函數。 在節點樹的父可視化中添加 GraphObject ( 在這種情況下,以編程方式構建的go.Node ) 將涉及到在父節點上調用 add

parentNode.add(childNode)

這是在將 go.Shapego.TextBlock 添加到以編程方式生成的節點時使用的相同函數。

關於這種方法的一個問題是,你正在向中的每個 GraphObject 添加一個對 go.Node的引用。 你可能希望構建一個你希望在每個選中元素中添加的go.Node 在循環 such constructor constructor在每次選中的元素中添加不同的go.Node s,而不是 same 。

...