我想从父级删除所有与源连接的边,所以有什么功能可以删除单元格引用的从父级到子级连接的所有边。
如何在mxgraph中从子单元获取父单元。
我正在尝试使用连接器实现拖放操作,对吗?
mxConnectionHandler.prototype.connect = function(source, target, evt, dropTarget){
// First ill connect the target and source edges
// Later ill remove all connected edges from parent to source
}
source.parent.getValue('value')
现在未定义。
我需要父引用,以便也可以帮助保存到数据库。请提供合适的链接引用。
我可以从文档中看到:mxCell.prototype.getParent = function()
,但是如何使用呢?请举一个小例子。
尝试使用cell.getParent()
也:graph.model.getParent(cell)
但是它返回:mxCell {value: undefined, geometry: undefined, style: undefined, parent: mxCell, id: "1", …}
,其值为undefined
。我在做什么错或如何完美获取其父单元格引用?
我通过将parentid附加到cellid来解决这个问题的唯一方法。并使用数组拆分并从其ID中获取单元格,但是我不乐意这样做,因为连接多个边缘时我会做很多工作。因此,需要一个最简单的解决方案。期待听到有人遇到类似的挑战并克服吗?
答案 0 :(得分:1)
首先,让我们考虑以下两项:
1)单元格的子级:
一个单元格指向我们感兴趣的单元格。
代码
function getChildrenOfCell(cell){
if(cell != undefined){
let children = [];
let edges = cell.edges;
if(edges != null){
for(let i = 0; i < edges.length; i++){
if(edges[i].target.value == cell.value){
let cellCopy = edges[i].source.clone();
children.push(cellCopy);
}
}
}
return children;
}
else{
return [];
}
}
2)单元格的父级:
我们感兴趣的单元格指向的单元格。
代码
function getParentsOfCell(cell){
if(cell != undefined){
let parents = [];
let edges = cell.edges;
if(edges != null){
for(let i = 0; i < edges.length; i++){
if(edges[i].source.value == cell.value){
let cellCopy;
if(!parents.includes(edges[i].target)){
cellCopy = edges[i].target
}
parents.push(cellCopy);
}
}
}
return parents;
}
else{
return [];
}
}
答案 1 :(得分:0)
放弃了在graph.model.getParent(cell)
父级是指该区域及其与所有顶点共享的区域。因此,借助cell.edges[0].source
的单边连接遇到了父单元参考,如果有来自不同父节点的多个边连接,则cell.edges[...n].source
取决于您如何解决它们。