1

我有一个这样定义的元素:

var m1 = new joint.shapes.devs.Model({
    position: { x: 100, y: 50 },
    size: { width: 190, height: 50 },
    inPorts: ['in'],
    outPorts: ['out'],
    attrs: {
        '.label': { text: 'Model','ref-x': .4, 'ref-y': .25 ,fill: '#fefefe',
            'font-size': 14,
            'font-weight': 'bold', 
            'font-variant': 'small-caps' },
        rect: { fill: '#fefefe'},
        '.inPorts circle': { r:5 ,fill: '#16A085' ,magnet: 'passive', type: 'input'},
        '.outPorts circle': { r:5, fill: '#E74C3C',magnet: 'passive',type: 'output' },
    }

问题是如何获得“.label”属性?例如,我需要获取文本“模型”,我应该怎么做?如果我想获得 'rect' 的 'fill' attr,我可以简单地使用 m1.get('attrs').rect.fill。

但我不知道如何获取“.label”属性。

4

2 回答 2

4

使用attr()设置属性和取回属性的方法:

m1.attr('.label/text') // 'Model'
m1.attr('.label/text', 'New Model')
m1.attr('.label/text') // 'New Model'

'/'是嵌套attrs对象的路径分隔符。

于 2014-07-23T10:00:58.267 回答
0
var rootnode = new joint.shapes.basic.Circle({
  position: { x: 20, y: 220 },
  size: { width: 60, height: 30 },
  attrs: {
    text: { text: 'parent' },
    circle: { fill: 'yellow', hasChildren:false }
  },
  name: 'parent'   
});

graph.addCell(rootnode);
于 2017-09-29T07:38:23.370 回答