簡體   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