#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');