Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jointjs:获取标签的位置并将位置设置为链接段的中心_Javascript_Jointjs - Fatal编程技术网

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

Javascript jointjs:获取标签的位置并将位置设置为链接段的中心,javascript,jointjs,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 = c

我想为链接添加一个标签,我喜欢这样做:

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' }
                    }
                });
            }
        }
    }
});
如果存在现有标签,将添加一个覆盖以编辑文本。为了让这个输入字段精确地覆盖标签,我需要知道它的位置。但是位置不是定义为纸张上的绝对位置,而是相对于起点的值。否则,我可以使用x和y值来定位输入字段

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