Отсутствующие атрибуты в mxcell

#mxgraph

#mxgraph

Вопрос:

Я работаю с библиотекой mxClient.

У меня следующая проблема, мне нужно изменить только визуальное имя моего узла.

Но у меня ничего не получается.

У меня есть следующий код:

var data = «Атрибуты’;

var node = mxUtils.createXmlDocument (). createElement (данные);

node.setAttribute (‘label’, данные);

node.setAttribute (‘idBD’, 123);

/ * здесь я использую некоторые стили, а затем назначаю их (слева) * /

var v2 = graph.insertVertex (родительский, нулевой, узел, x, y, 250, 100, ‘left’);

Теперь я просто хочу изменить визуальное имя моего узла, которое будет «Атрибутами».

Я уже пробовал несколько способов, например:

v2.setValue (ячейка, значение) -> Но затем я теряю ранее определенные атрибуты.

Спасибо

Ответ №1:

Я предлагаю вам имитировать то, что рекомендуется в https://jgraph.github.io/mxgraph/docs/js-api/files/model/mxCell-js.html для graph.cellLabelChanged функции в этом случае:

  • проверьте, является ли значение node
  • в этом случае обновите атрибут узла ‘label’
 function setCellLabel(cell, label) {
  if (mxUtils.isNode(cell.value)) {
    cell.value.setAttribute('label', label);
  } else {
    cell.setValue(label);
  }
}
// set the new label
setCellLabel(v2, 'my new label');

  

Вы также должны иметь возможность обогатить прототип mxCell новой функцией, такой как

 mxCell.prototype.setLabel = function(label) {
  if (mxUtils.isNode(this.value)) {
    this.value.setAttribute('label', label);
  } else {
    this.value = label;
  }
}
// set the new label
v2.setLabel('my new label');