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);
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 的引用在myDiagram.selection中。您可能想要做的是构建要添加到 while 循环中选择的每个元素的 go.Node ,以便每次都会调用构造函数,并且您'正在将不同 go.Node 添加到每个选定的元素,而不是相同的元素。

关于javascript - gojs中如何将节点添加到父节点(当前选中的节点)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24139247/

相关文章:

javascript - 如何更改Go.js中节点的文本

java - 如何在 selenium webdriver 中使用 Canvas GoJS

java - 如何从 Chrome 浏览器获取 Canvas 元素坐标

javascript - 使用 fancybox 扩展 Javascript 确认框

javascript - 在 ejs 中使用保留字

javascript - 用于开发和生产的(非)缩小 js/css 文件的工作流

javascript - GoJS makeSVG 未生成正确的 HTML SVG 对象

javascript - Svelte 中的每个异步

javascript - 为什么是 {key : "value"} different from {"key" : "value"}?

php - 如何将json模型对象保存到php mysql数据库