JointJs创建自定义形状并指定其默认链接

时间:2014-07-17 03:10:25

标签: jointjs

我正在尝试使用ports实现自己的shape类。但是,我希望这些形状生成的链接是平滑的。现在,我知道制作流畅链接的唯一方法是

link.set('smooth', true)

但是我怎么做不是通过代码呢?如何通过拖动获得平滑链接?

我扩展了Link类(MyLink)但是如何告诉JointJS当我拖动端口时要使用哪个Link类?

joint.shapes.myclass.Link = joint.dia.Link.extend({

    defaults: {
        type: 'myclass.Link',
        attrs: { '.connection' : { 'stroke-width' :  5 }},
        smooth:true
    }
});

1 个答案:

答案 0 :(得分:4)

通过拖动端口通过UI创建的链接在论文的defaultLink属性中定义。它可以是一个对象,在这种情况下它是一个链接模型或一个返回链接模型的函数:

var paper = new joint.dia.Paper({
    defaultLink: new joint.shapes.myclass.Link,
    ...
})

或:

var paper = new joint.dia.Paper({
   defaultLink: function(elementView, magnet) {
       if (aCondition) return new joint.dia.Link;
       else return joint.shapes.myclass.Link;
   }
})

该功能可让您灵活地创建不同的链接,具体取决于下面的元素或拖动的磁体(端口的SVG元素)。