ユーザーがリンクできない2つの要素を接続しようとすると、トースターを表示しようとしています。問題は、矢印がターゲットに到達したときだけでなく、矢印のドラッグを開始したときに、JointJS がグラフ上のすべての要素に対して関数 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;
},
});