当用户尝试连接两个无法链接的元素时,我试图展示一个烤面包机。问题是当我开始拖动箭头时,JointJS 会为 Graph 上的所有元素调用函数 validateConnection ,不仅是在箭头到达目标时,因此我无法将烤面包机代码放在那里。我正在寻找一种方法来检查是否进行了无效的连接尝试。
我知道我可以听
paper.on('link:connect', function(linkView, evt, elementViewConnected, magnet, arrowhead) {console.log('Valid connection');});
但仅限于有效连接。有没有办法获得无效的连接尝试?
我的论文:
const paper = this.paper = new rappid.joint.dia.Paper({
width: 1000,
height: 1000,
gridSize: 10,
drawGrid: true,
model: graph,
multiLinks: false,
linkPinning: false,
markAvailable: true,
perpendicularLinks: true,
defaultLink: function (cellView, magnet, link) {
return LinksService.getMyLink(cellView.model.attributes.link, data);
},
validateConnection: function (cellViewS, magnetS, cellViewT, magnetT, end) {
const idS = cellViewS.model.id;
const idT = cellViewT.model.id;
const links = appInstance.graph.getLinks();
if (flowContext.existsConnection(idS, idT, links)) {
return false;
}
return true;
},
});