JointjS: Как получить атрибуты данного элемента?

У меня есть элемент, определенный следующим образом:

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»? Например, мне нужно получить текст "Модель", что мне делать? Если я хочу получить атрибут fill для 'rect', я могу просто использовать m1.get('attrs').rect.fill.

Но я не знаю, КАК ПОЛУЧИТЬ атрибут «.label».


person Minerhaoxue    schedule 22.07.2014    source источник


Ответы (1)


Используйте метод attr() как для установки атрибутов, так и для их возврата:

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

'/' — это разделитель пути к вложенному объекту attrs.

person dave    schedule 23.07.2014