我是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>
答案 0 :(得分:0)
首先,请参见以下示例:https://gojs.net/latest/samples/regrouping.html。
如果您查看代码,将会看到需要将“组”模板上的 mouseDrop 设置为一个函数,该函数将放置的节点添加为该组的成员。查看该示例中如何定义finishDrop
函数。
这还有助于将 computesBoundsAfterDrag 设置为true,并将 handlesDragDropForMembers 设置为true。
(可选)最好设置 mouseDragEnter 和 mouseDragLeave 在拖放之前的拖动过程中提供视觉反馈。