GoJS NodeData 和 LinkData 属性 字段是什么?

What are all the GoJS NodeData and LinkData property fields?

所以我想使用 addNodeData(nodedata) 和 addLinkData(linkdata) 在 GoJS 中动态构建一个 GraphLinksModel。我的问题是除了示例代码中的字段外,我不知道 nodedata 和 linkdata 的字段是什么。我可以为我的每个节点和链接构建 Node 对象和 Link 对象,但是 addNodeData 和 addLinkData 实际上不需要这些,他们需要 "nodedata" 和 "linkdata".当我尝试添加 addNodeData(Node) 时出现错误。

这里是addNodeData(nodedata) and addLinkData(linkdata)的描述。正如您所看到的,它只是将参数定义为一个对象,没有任何提示,除了示例中关于它应该包含什么的提示。任何方向或解释将不胜感激。

节点数据是一个 JavaScript 对象,至少具有以下格式。根据您使用的对象类型,可以添加额外的 属性。

{ "id": 1, "text": "TextToDisplay1" }
{ "id": 2, "text": "TextToDisplay2" }

link 数据又是一个 JavaScript 对象,格式如下

{ "from": 1, "to": 2, "text": "Link above 1 and 2", "curviness": 20 }
此对象的

'From' 属性将具有 From 节点的 Id 值,与 'to' 属性的情况相同,它是 'to' 节点 ID。

没有"all",Node数据可以包含任何内容,任意,但必须包含一个key。如果没有定义 key,GoJS 模型会自动分配一个。换句话说,如果你添加 { } 作为你的节点数据并查看它,你会发现它是:

{ __gohashid: 1975, key: -5 }

__gohashid 是 GoJS 内部的,不应修改或使用。他们的钥匙是独一无二的。

您可以更改 uniqueness function of the model, and you can even change the keyword for key

您可以在 Model overview in the API 阅读更多内容。

除了一些内置数据属性外:

  • category,指定使用哪个节点或Link模板,但默认为"",无需指定。
  • TreeModel中还有parent,指定父节点的key。

您在模型上找到的任何其他属性都没有任何意义,除非图的节点和 Link 模板对这些名称具有 数据绑定。例如这个模板有两个数据绑定:

// define a simple Node template
myDiagram.nodeTemplate =
  $(go.Node, "Auto",  // the Shape will go around the TextBlock
    $(go.Shape, "RoundedRectangle", { strokeWidth: 0},
      // Shape.fill is bound to Node.data.color
      new go.Binding("fill", "color")),
    $(go.TextBlock,
      { margin: 8 },  // some room around the text
      // TextBlock.text is bound to Node.data.key
      new go.Binding("text", "key"))
  );

如果节点数据中存在color,它将被用作此节点模板Shape中的Shape.fill

如果 key 存在于节点数据中(它必须存在),它将被用作 TextBlock.text

您可以在此处看到实际效果:http://codepen.io/simonsarris/pen/ORwoLA?editors=1010

如果您认为应该进行更多说明,请告诉我,我会更新答案。