jointjs: prevent adding vertex by clicking on link

2020-07-06 09:10发布

问题:

I would like to add a label to a link by doing a doubleclick on the link. So this is my attempt:

paper.on({
    'cell:pointerdblclick': function(cellView, event, x, y){
        if (cellView.model.isLink()) {
            cellView.model.label(0, {
                position: .5,
                attrs: {
                    rect: { fill: 'white' },
                    text: { text: 'my label' }
                }
            });
        }
    },
});

The problem is, that by doing a doubleclick there is also a vertex beeing created at the same time. How can I prevent that?

Or what would be another simple way to let users add a label for a link?

回答1:

As shown in the docs (http://jointjs.com/api#joint.dia.LinkView:addVertex) just add this part to joint.dia.Paper:

    interactive: function(cellView) {
        if (cellView.model instanceof joint.dia.Link) {
            // Disable the default vertex add functionality on pointerdown.
            return { vertexAdd: false };
        }
        return true;
    }