Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 防止在Cytoscape JS和x2B中创建边缘;边缘把手_Javascript_Cytoscape.js - Fatal编程技术网

Javascript 防止在Cytoscape JS和x2B中创建边缘;边缘把手

Javascript 防止在Cytoscape JS和x2B中创建边缘;边缘把手,javascript,cytoscape.js,Javascript,Cytoscape.js,防止从节点A到节点B创建多条边的最佳方法是什么 我目前正在使用一个映射(普通JSON对象)来跟踪添加的边,如果从a到B的边已经存在,我会将其删除,但作为解决方案,它看起来不是很优雅 我想我是通过查看edgeType事件找到了解决方案的,因为它将源节点和目标节点作为参数,返回null/undefined将阻止添加边缘。问题是我实际上没有得到一个目标节点,而是另一种对象,这使得这个事件毫无用处。我不明白什么是有用的,它实际上似乎是一个bug。另一种对象可能是edgeHandle对象。它的数据中只有i

防止从节点A节点B创建多条边的最佳方法是什么

我目前正在使用一个映射(普通JSON对象)来跟踪添加的边,如果从aB的边已经存在,我会将其删除,但作为解决方案,它看起来不是很优雅


我想我是通过查看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表示无法在节点之间建立链接};