自定义 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 中,以便它们可以被链接中的所有引用共享。"
我定义了这样一个 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 中,以便它们可以被链接中的所有引用共享。"