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

  显示原文与译文双语对照的内容
0 0

我已经写了


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);

时间: 原作者:

0 0

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 。

...