自定义 linkDataArray GoJs

Custom linkDataArray GoJs

我定义了这样一个 GraphLinksModel:

  $(go.GraphLinksModel,
    {
      archetypeNodeData: {},
      linkFromPortIdProperty: 'source',
      linkFromKeyProperty: 'sourceColumn',
      linkToPortIdProperty: 'destination',
      linkToKeyProperty: 'destinationColumn',
      'Changed': (e) => {
        if (e.isTransactionFinished) {
          console.log('Changed ' + this.diagram.model.toJson());
        }
      },
      nodeDataArray: this.visualOrigins,
      linkDataArray: this.relations
    });

这会生成一个输出:

 "linkDataArray": [ 
    {"source":"Record1", "sourceColumn":"field1", "destination":"Record2", 
    "destinationColumn":"fieldA"}
 ]}

可以生成此输出,但是其中引用了 javascript 个对象?像这样:

 "linkDataArray": [ 
    {"source":"Record1", 
     "sourceObjectNode": {sourceObjectReferenced},
     "sourceColumn":"field1",
     "sourceColumnObjectNode": {sourceColumnObjectNodeReferenced},
     "destination":"Record2", 
     "destinationObjectNode": {destinationObjectNodeReferenced},
     "destinationColumn":"fieldA",
     "destinationColumnNode": {destinationColumnObjectNodeReferenced}}
 ]}

这样做的目的是在不进行任何处理的情况下拥有链接节点。

提前致谢

来自GoJS论坛的回答:

https://forum.nwoods.com/t/insert-node-object-inside-linkdataarray/9395

“不,那不是有效的 JSON 格式文本。 另外,我认为将节点定义放在链接中没有意义。它们应该在 Model.nodeDataArray 中,以便它们可以被链接中的所有引用共享。"