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
如果您认为应该进行更多说明,请告诉我,我会更新答案。
所以我想使用 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
如果您认为应该进行更多说明,请告诉我,我会更新答案。