Jointjs 拖动link目标时,让它调用自定义函数

Jointjs When dragging a link target, have it call a custom function

我想覆盖默认的 link 行为。我有一个函数可以处理将 link 连接到遵循一组特定规则的目标。例如LinkTypeA只能连接到ObjectType1和ObjectType2,LinkTypeB只能连接到ObjectType3。

如果用户正在创建 LinkTypeA,并在单击 ObjectType3 时终止,则会为 links 目标创建一个点 (x, y)。

这是因为 ObjectType1 和 ObjectType2 通常嵌入在 ObjectType3 之上。

我的行为正常,但是当你抓住一个 link 的末端并拖动它时,放手时,它运行一个内部函数,它允许它连接到 ObjectType3。

我想覆盖它并让它调用我的自定义函数。我该怎么做?

linkValidation 函数应该处理它,即使 link 正在被拖动。在下面的示例中,只能 link 编辑相同类型的形状(矩形与矩形,圆与圆)。

var paper = new joint.dia.Paper({
    el: $('#paper'),
    width: 650,
    height: 400,
    model: graph,
    linkPinning: false,
    validateConnection: function(cellViewS, magnetS, cellViewT, magnetT, end, linkView) {
        var source = cellViewS.model.get('type');
        var target = cellViewT.model.get('type');

        return source && source === target;
    }
});

https://jsfiddle.net/vtalas/65uteht9/