在使用antv-x6遇到问题的时候,先去网上搜了,结果发现相关的帖子较少,就决定写一个帖子记录一下问题。
一、使用group组的时候,删除父子节点之间的边之后,拖动父节点,子节点仍然能被拖动的bug
我们通过父子嵌套来实现群组Group时,看官方文档能注意到,即便子节点位于父节点外部,移动父节点时子节点也将跟着移动。创建边时,默认将起始节点和终止节点的共同父节点作为边的父节点。移动父节点时,边的路径点将跟随移动。
所以在删除边的时候,需要找到当前边的终止节点的父节点,使用unembed去掉终止节点和父节点之间的关系。
代码如下:
this.graph.on('edge:removed', ({cell}) => {
let node = this.graph.getNodes().find(v => v.id === cell.target.cell)
if (node) {
node.getParent().unembed(node)
}
})
二、使用连线的时候,遇到一个问题,节点左右的连接桩不好选中,因为边的层级比连接桩的高
因为业务需要,鼠标悬浮到节点的时候才显示连接桩,鼠标悬浮到边的时候高亮边,所以当一个节点已经有边的时候,想选中连接桩就会因为悬浮到边,而导致选中困难,这是因为锚点默认设置是center
所以只需要设置锚点,就可以解决了。