我正在创建一个简单的joint.shapes.devs.Model并分配一个text属性,但是文本没有显示出来,而是被标记为“ Model”。

function makeEditableElement(label) {

        var maxLineLength = _.max(label.split('\n'), function(l) { return l.length; }).length;

        // Compute width/height of the rectangle based on the number
        // of lines in the label and the letter size. 0.6 * letterSize is
        // an approximation of the monospace font letter width.
        var letterSize = 15;
        var width = 2 * (letterSize * (0.3 * maxLineLength + 1));
        var height = 2 * ((label.split('\n').length + 1) * letterSize);

        return new joint.shapes.devs.Model({
            '.label': label,
            size: { width: width, height: height },
            inPorts: [''],
            outPorts: [''],
            attrs: {  '.inPorts circle': { r: 3 ,fill: 'gray', type: 'input',magnet: 'passive'},
                    '.outPorts circle': { r: 3 ,fill: 'gray', type: 'output',magnet:'true' },
                    rect: { width: width, height: height, fill: '#FFF' ,rx: 5,ry: 5, 'stroke-width':1.5,  'stroke': '#555' },
                    text: { text: label, fill: '#555' , 'font-size': 13, magnet: true,'font-weight': 'normal'}
                }
        });
    }
graph.addCell(makeEditableElement("foo"));
joint.layout.DirectedGraph.layout(graph, { setLinkVertices: false });


请指出我是否缺少某些东西,因为我是JointJS的新手。提前致谢。

最佳答案

我通过将attrs中的'.label'位置更改为:

function makeEditableElement(label,x,y) {

        var maxLineLength = _.max(label.split('\n'), function(l) { return l.length; }).length;

        // Compute width/height of the rectangle based on the number
        // of lines in the label and the letter size. 0.6 * letterSize is
        // an approximation of the monospace font letter width.
        var letterSize = 15;
        var width = 2 * (letterSize * (0.3 * maxLineLength + 1));
        var height = 2 * ((label.split('\n').length + 1) * letterSize);

        return new joint.shapes.devs.Model({
            id: label,
            position: {x:x, y:y},
            size: { width: width, height: height, fill: 'transparent' ,rx: 5,ry: 5, 'stroke-width':1.5,  'stroke': '#31d0c6' },
            inPorts: [''],
            outPorts: [''],
            attrs: {  '.label': {text: label},
                    '.inPorts circle': { r: 3 ,fill: 'gray', type: 'input',magnet: 'passive'},
                    '.outPorts circle': { r: 3 ,fill: 'gray', type: 'output',magnet:'true' },
                    rect: { width: width, height: height, fill: 'transparent' ,rx: 5,ry: 5, 'stroke-width':1.5,  'stroke': '#31d0c6' },
                    text: { text: label, magnet: true, 'font-size': letterSize, 'font-family': 'monospace' }
                }
        });
    }

关于javascript - JointJS模型-未分配文本属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40005453/

10-11 08:50