gojs добавить шаблон группы в .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
                });

затем, чтобы поместить его в блок выбора объектов (слева), мы добавили его в

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

однако поле группы не отображается в средстве выбора, а является дубликатом элемента nodeTemplateMap по умолчанию.

согласно документам, nodeDataArray

Получает или задает массив объектов данных узлов, которые соответствуют узлам, группам или частям, не являющимся связанными на схеме.

как добавить группу в средство выбора, а также в основной div, где мы можем добавить стандартные элементы из nodeTemplateMap


person art vanderlay    schedule 09.06.2020    source источник


Ответы (1)


вам нужно установить isGroup в true в данных, а не просто указать, какая это категория шаблона группы. Обратите внимание, что это позволяет шаблонам узлов и шаблонам групп иметь одинаковые имена (например, имя пустой строки по умолчанию)

 palette.model.nodeDataArray = [
            {}, // default node
            { category: "Source" },
            { category: "grp", isGroup: true }
        ];
person Simon Sarris    schedule 09.06.2020
comment
спасибо @Simon, я добавлял isGroup: true только в import json, я не заметил, что вам нужно также добавить в массив модели - person art vanderlay; 09.06.2020