jointjs:获取标签的位置并将位置设置为链接段的中心

时间:2015-10-25 15:57:07

标签: javascript jointjs

我想在链接中添加标签,我喜欢这样:

paper.on({
    'cell:pointerdblclick': function(cellView, event, x, y){            
        // Set label for this link
        if (cellView.model.isLink()) {
            var cellId  = cellView.model.id,
                label   = cellView.model.get('labels'),
                content = 'Text';

            if (label) { // edit existing label
                $('#canvas').prepend('<input type="text" id="overlay" data-id="' + cellId + '" style="top: 20px; left: 20px;" value="' + content + '">');
                $('#overlay').focus().select();
            }
            else { // create new label
                cellView.model.label(0, {
                    position: .5,
                    attrs: {
                        rect: { fill: 'white' },
                        text: { text: 'my label' }
                    }
                });
            }
        }
    }
});
  1. 如果存在现有标签,则添加叠加层以编辑文本。要将此输入字段准确地放在标签上,我需要知道它的位置。但该位置并未定义为纸张上的绝对位置,而是相对于起点的值。否则,我可以使用x和y值来定位输入字段。

  2. 我正在使用曼哈顿风格的链接,这意味着可能有多个细分,因为链接不是直线。现在我想将标签始终放在一个段的中心。标签也可以从一个段落到另一个段。但标签属性position使用链接的完整长度,而不仅仅是一个段。我不知道从哪里可以获得这些信息。

0 个答案:

没有答案