当用户尝试连接两个无法链接的元素时,我试图显示一个烤面包机。问题是,当我开始拖动箭头时,不仅当箭头到达目标时,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;
},
});
答案 0 :(得分:0)
validateConnection
用于防止用户在与链接进行交互时完全创建无效的连接。如果您想对无效的连接(带有吐司/消息)做出反应,可以改用allowLink
。 (文档:https://resources.jointjs.com/docs/jointjs/v2.1/joint.html#dia.Paper.prototype.options.allowLink)