验证时JointJS显示消息失败

时间:2018-08-09 18:29:00

标签: javascript jointjs rappid

当用户尝试连接两个无法链接的元素时,我试图显示一个烤面包机。问题是,当我开始拖动箭头时,不仅当箭头到达目标时,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;
          },
        });

1 个答案:

答案 0 :(得分:0)

validateConnection用于防止用户在与链接进行交互时完全创建无效的连接。如果您想对无效的连接(带有吐司/消息)做出反应,可以改用allowLink。 (文档:https://resources.jointjs.com/docs/jointjs/v2.1/joint.html#dia.Paper.prototype.options.allowLink