0

ポートを使用して独自の形状クラスを実装しようとしています。ただし、これらの形状が生成するリンクを滑らかにしたいと考えています。現在、スムーズなリンクを作成する唯一の方法は、

link.set('smooth', true).

しかし、コードを介さずにどうすればよいでしょうか? ドラッグするだけでスムーズなリンクを取得するにはどうすればよいですか?

リンク クラス ( MyLink) を拡張しましたが、ポートにドラッグするときにどのリンク クラスを使用するかを JointJS に伝えるにはどうすればよいですか?

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

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

1 に答える 1

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 要素) に応じて、さまざまなリンクをその場で柔軟に作成できます。

于 2014-07-17T09:34:19.507 に答える