Как переместить / перетащить узел из одной группы в другую? - PullRequest
0 голосов
/ 05 июня 2019

Я новичок в go.js и у меня проблема.У меня есть две группы, и у обеих есть два элемента.Я хочу переместить элемент из одной группы в другую.Я считаю, что это должно быть очень просто, но я не могу найти решение.Есть идеи?

Ниже я прилагаю минимальную версию двух групп с двумя элементами.

<!DOCTYPE html>
<head>
    <meta charset="utf-8" />
    <script src="https://cdnjs.cloudflare.com/ajax/libs/gojs/2.0.5/go.js"></script>
    <title></title>
    <script>
    	function init() {
       		var $ = go.GraphObject.make;
          myDiagram = $(go.Diagram, "myDiagramDiv");
          var nodeDataArray = [
          	        { key: "Group 1", isGroup: true },
    				{ key: "A", group: "Group 1" },
    				{ key: "B", group: "Group 1" },
    				{ key: "Group 2", isGroup: true },
    				{ key: "C", group: "Group 2" },
                    { key: "D", group: "Group 2" }
          ];
          
          myDiagram.model = new go.GraphLinksModel(nodeDataArray);
      }
    </script>
</head>

<body onload="init()">
    <div id="myDiagramDiv" style="width:300px; height:300px; border: 1px solid black;"></div>
</body>
</html>

1 Ответ

0 голосов
/ 05 июня 2019

Сначала посмотрите этот пример: https://gojs.net/latest/samples/regrouping.html.

Если вы посмотрите на код, вы увидите, что вам нужно установить mouseDrop в шаблоне группы для функции, которая добавляетотброшенные узлы, чтобы быть членами группы.Посмотрите, как в этом примере определяется функция finishDrop.

Также полезно установить computesBoundsAfterDrag в true и handlesDragDropForMembers в true.

При желании можно установить mouseDragEnter и mouseDragLeave , чтобы обеспечить визуальную обратную связь во время перетаскивания перед падением.

...