1

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

1 回答 1

0

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

于 2018-09-06T09:55:52.830 回答