细胞之间的链接不是“平坦的” - JointJS

时间:2016-08-25 08:44:24

标签: javascript svg jointjs

当我拖动“桌子”单元格时,大部分时间连接是平坦的/水平的(如链接的垂直部分或ORDERLINE表格中的小位),但有时它们最终会在微小角度(链接的左侧位)。有办法防止这种情况吗?

enter image description here

如果我检查devtools中的元素,那么它会显示rotate有一些小的偏移而不是我希望看到的值(即0,90,180,-90,-180) ..当前为链接的左侧部分呈现的内容的示例:

<path class="marker-source" fill="white" stroke="#c5d8e5" d="M 6 0 L 6 10 M 6 5 L 0 5 z" id="v-29" stroke-width="2" transform="translate(318.204758999181,420.00417997801776) scale(1,1) rotate(2.34686279296875)"></path>

有没有办法对此做些什么呢?

1 个答案:

答案 0 :(得分:3)

这是manhattan路由器吗?如果是这样,有一个技巧如何改善这一点。尝试将相同的值设置为paper.option.gridSizerouter.option.step,如下例所示,其中设置为20.

var paper = new joint.dia.Paper({
    el: document.getElementById('paper'),
    width: 800,
    height: 600,
    gridSize: 20,
    perpendicularLinks: true,
    model: graph,
    defaultLink: new joint.dia.Link({
        router: { name: 'manhattan', args: { step: 20 } },
        connection: { name: 'orthogonal' },
        attrs: {
            '.marker-target': { d: 'M 10 0 L 0 5 L 10 10 z', fill: '#fff', stroke: '#000' },
            '.link-tools .tool-remove circle, .marker-vertex': { r: 8 },
            '.connection': {
                stroke: '#000', 'stroke-width': 1
            }
        }
    }),
    interactive: {
        vertexAdd: false
    }
});