【问题标题】:gojs add group template to .model.nodeDataArraygojs 将组模板添加到 .model.nodeDataArray
【发布时间】:2020-06-09 10:15:44
【问题描述】:

我们在将组模板添加到页面流文档时遇到问题 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

获取或设置与图中的节点、组或非链接部分相对应的节点数据对象数组。

我们如何将组添加到选择器以及主 div 中,我们可以在其中添加来自nodeTemplateMap 的标准元素

【问题讨论】:

    标签: gojs


    【解决方案1】:

    你需要在数据中将isGroup设置为true,而不仅仅是指定它是组模板的哪个类别。请注意,这允许节点模板和组模板具有相同的名称(如默认的空字符串名称)

     palette.model.nodeDataArray = [
                {}, // default node
                { category: "Source" },
                { category: "grp", isGroup: true }
            ];
    

    【讨论】:

    • 感谢@Simon,我只是将isGroup: true 添加到导入json,我没有注意到您还需要添加到模型数组中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-19
    • 2019-05-23
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多