gojs 将组模板添加到 .model.nodeDataArray
gojs add group template to .model.nodeDataArray
我们在将组模板添加到页面流文档时遇到问题
https://codesandbox.io/s/keen-saha-1b46y?file=/index.html
首先我们通过创建 groupTemplateMap
添加模板
var palette =
$(go.Palette, "myPaletteDiv", // create a new Palette in the HTML DIV element
{
// share the template map with the Palette
nodeTemplateMap: myDiagram.nodeTemplateMap,
groupTemplateMap: myDiagram.groupTemplateMap,
autoScale: go.Diagram.Uniform // everything always fits in viewport
});
然后将其放入对象选择器 div(左侧),我们将其添加到
palette.model.nodeDataArray = [
{}, // default node
{ category: "Source" },
{ category: "grp" }
];
但是组合框不会显示在选取器中,而是 nodeTemplateMap
默认元素的副本。
根据文件,nodeDataArray
Gets or sets the array of node data objects that correspond to Nodes, Groups, or non-Link Parts in the Diagram.
我们如何将组添加到选择器以及我们可以从 nodeTemplateMap
添加标准元素的主要 div
你需要在数据中设置isGroup
到true
,而不是仅仅指定它是组模板的哪个类别。请注意,这允许节点模板和组模板具有相同的名称(如默认的空字符串名称)
palette.model.nodeDataArray = [
{}, // default node
{ category: "Source" },
{ category: "grp", isGroup: true }
];
我们在将组模板添加到页面流文档时遇到问题 https://codesandbox.io/s/keen-saha-1b46y?file=/index.html
首先我们通过创建 groupTemplateMap
var palette =
$(go.Palette, "myPaletteDiv", // create a new Palette in the HTML DIV element
{
// share the template map with the Palette
nodeTemplateMap: myDiagram.nodeTemplateMap,
groupTemplateMap: myDiagram.groupTemplateMap,
autoScale: go.Diagram.Uniform // everything always fits in viewport
});
然后将其放入对象选择器 div(左侧),我们将其添加到
palette.model.nodeDataArray = [
{}, // default node
{ category: "Source" },
{ category: "grp" }
];
但是组合框不会显示在选取器中,而是 nodeTemplateMap
默认元素的副本。
根据文件,nodeDataArray
Gets or sets the array of node data objects that correspond to Nodes, Groups, or non-Link Parts in the Diagram.
我们如何将组添加到选择器以及我们可以从 nodeTemplateMap
你需要在数据中设置isGroup
到true
,而不是仅仅指定它是组模板的哪个类别。请注意,这允许节点模板和组模板具有相同的名称(如默认的空字符串名称)
palette.model.nodeDataArray = [
{}, // default node
{ category: "Source" },
{ category: "grp", isGroup: true }
];