我想在链接中添加标签,我喜欢这样:
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值来定位输入字段。
我正在使用曼哈顿风格的链接,这意味着可能有多个细分,因为链接不是直线。现在我想将标签始终放在一个段的中心。标签也可以从一个段落到另一个段。但标签属性position
使用链接的完整长度,而不仅仅是一个段。我不知道从哪里可以获得这些信息。