如何将节点从一个组移动/拖动到另一组?

时间:2019-06-05 16:46:02

标签: javascript gojs

我是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 :(得分:0)

首先,请参见以下示例:https://gojs.net/latest/samples/regrouping.html

如果您查看代码,将会看到需要将“组”模板上的 mouseDrop 设置为一个函数,该函数将放置的节点添加为该组的成员。查看该示例中如何定义finishDrop函数。

这还有助于将 computesBoundsAfterDrag 设置为true,并将 handlesDragDropForMembers 设置为true。

(可选)最好设置 mouseDragEnter mouseDragLeave 在拖放之前的拖动过程中提供视觉反馈。