Динамически обновлять метку ребер в Cytoscape. js graph - PullRequest
0 голосов
/ 05 мая 2020

Я работаю с Cytoscape. js графом, и я хотел бы динамически обновлять метки ребер:

Вот пример моего графа:

window.cy = cytoscape({
    container: document.getElementById('cy'),

    layout: {
         name: 'preset'
    },

    style: fetch('cy-style.json').then(function(res){
      return res.json();
    }),

    elements: [
        // nodes
        { data: { id:'box_1', label:'BOX_1', type:'app'}, position: {x:21,y:32}},
        { data: { id:'box_2', label:'BOX_2', type:'app'}, position: {x:46,y:44}},

        // edges
        { data: { id: 'box1_to_box2', source: 'box1', target: 'box2', label: '' }, }
     ]
  });


Это очень простой граф с двумя узлами и одним ребром между ними.

Я хотел бы динамически обновить метку края box1_to_box2. Я знаю, как получить метку элемента, но не знаю, как ее обновить. Я пробовал использовать .innerHTML, но это не работает. Я думаю, это потому, что это не html?

function updatelabel(id, label) {

    console.log(cy.getElementById(id).data("label")) // <-- I have the label
    cy.getElementById(id).data("label").innerHTML = label // <-- doesn't work

}

Спасибо за помощь

1 Ответ

0 голосов
/ 05 мая 2020

Я нашел вот такое решение:

var cy = window.cy
cy.$('#'+id).css({
    content: ''+label
});
...