Javascript 防止在Cytoscape JS和x2B中创建边缘;边缘把手
防止从节点A到节点B创建多条边的最佳方法是什么 我目前正在使用一个映射(普通JSON对象)来跟踪添加的边,如果从a到B的边已经存在,我会将其删除,但作为解决方案,它看起来不是很优雅Javascript 防止在Cytoscape JS和x2B中创建边缘;边缘把手,javascript,cytoscape.js,Javascript,Cytoscape.js,防止从节点A到节点B创建多条边的最佳方法是什么 我目前正在使用一个映射(普通JSON对象)来跟踪添加的边,如果从a到B的边已经存在,我会将其删除,但作为解决方案,它看起来不是很优雅 我想我是通过查看edgeType事件找到了解决方案的,因为它将源节点和目标节点作为参数,返回null/undefined将阻止添加边缘。问题是我实际上没有得到一个目标节点,而是另一种对象,这使得这个事件毫无用处。我不明白什么是有用的,它实际上似乎是一个bug。另一种对象可能是edgeHandle对象。它的数据中只有i
我想我是通过查看edgeType事件找到了解决方案的,因为它将源节点和目标节点作为参数,返回null/undefined将阻止添加边缘。问题是我实际上没有得到一个目标节点,而是另一种对象,这使得这个事件毫无用处。我不明白什么是有用的,它实际上似乎是一个bug。另一种对象可能是edgeHandle对象。它的数据中只有id属性。您可以通过添加一些条件来忽略它。但如果您将鼠标移到真正的目标节点上,这个edgeHandle元素将被您鼠标移到的元素(节点)替换
getEdgeType = (srcNode, tgtNode) => {
if (tgtNode.data() && tgtNode.data().isDiagramNode)
// isDiagramNode is a property of the diagram node data object
// you can add your logic and return either 'flat' or null
}
return null; // null means cant make link between nodes
};
getEdgeType=(srcNode,tgtNode)=>{if(tgtNode.data()&&tgtNode.data().isDiagramNode)//此处isDiagramNode是图表节点数据对象中的属性……此处您可以添加逻辑并返回'flat'或null}返回null;//null表示无法在节点之间建立链接};