繁体   English   中英

如何在 Go.js 节点上设置键值以创建链接

[英]How to set the key value on a Go.js Node to create links

我正在使用 Go.js 创建一个用户可以在其上绘制直线的画布。 从文档中,我已经能够创建节点。 节点创建代码如下所示:

const node = this.goMake(go.Node, 'Horizontal',
    { position: new go.Point(point[0], point[1]) },  // set the Node.position
        this.goMake(go.Shape, 'Circle', { width: 10, height: 10, fill: 'lightblue' })
);

据我了解文档,为了在两个节点之间创建一条线(非定向链接),我需要像这样使用它们的key

this.myDiagram.model.addLinkData({ from: node1.key, to: node2.key });

注销我的节点时,我看到key是一个空字符串。

问题:当使用上面的第一个代码段创建我的节点时,我如何注入键值以便第二个代码段正确地链接两者? 为所有点创建唯一值不是问题,我只是不知道如何将唯一值附加到节点的key属性。

键是模型数据的一个属性,其中模型有一个节点数据和链接数据的数组。 键并不是节点本身的属性。 node.key仅仅是一个方便node.data.key

所以当你写:

myDiagram.model.addNodeData( { key: 'a' });

它正在制作 myDiagram.nodeTemplate 的副本,并将{ key: 'a' }node.data分配给该节点,因此该节点的key'a'

换句话说,您只能通过模型​​而不是您正在创建的节点来关联这些东西。

如果您使用模型,您应该在图表上创建节点模板,而不是像您所做的那样创建独立节点。 所以像:

myDiagram.nodeTemplate = this.goMake(go.Node, 'Horizontal',
    { position: new go.Point(point[0], point[1]) },  // set the Node.position
        this.goMake(go.Shape, 'Circle', { width: 10, height: 10, fill: 'lightblue' })
);

或者如果您有多个模板:

myDiagram.nodeTemplateMap.add('newTemplate', this.goMake(go.Node, 'Horizontal',
    { position: new go.Point(point[0], point[1]) },  // set the Node.position
        this.goMake(go.Shape, 'Circle', { width: 10, height: 10, fill: 'lightblue' })
));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM