Как разделить порты дисплея и данных на примере mxgraph

Я работаю с mxgraph и использую пример портов mxgraph в качестве отправной точки для своего приложения. https://jgraph.github.io/mxgraph/javascript/examples/ports.html

В примере содержимое каждой ячейки передается через свойство value объекта mxcell. Отображаемое содержимое представляет собой метку html, которая затем отображается внутри ячейки. Пример кода ниже показывает создание перетаскиваемого значка на боковой панели с параметрами graph, sidebar, label, image.

addSidebarIcon(graph, sidebar,
                '<h1 style="margin:0px;">Website</h1><br>'+
                '<img src="images/icons48/earth.png" width="48" height="48">'+
                '<br>'+
                '<a href="http://www.jgraph.com" target="_blank">Browse</a>',
                'images/icons48/earth.png');

Затем функция addSideBarIcon создает вершину, передавая ее аргумент label в качестве свойства value MxCell.

v1 = graph.insertVertex(parent, null, label, x, y, 120, 120);

Я хотел бы иметь возможность добавить объект JSON для хранения не отображаемых данных вместе с меткой html для целей отображения в свойстве value каждой ячейки. Я хотел бы сделать это без изменения базовых прототипов.

addSidebarIcon(graph,
    sidebar, {
        display: '<h1 style="margin:0px;">Process</h1><br>' +
            '<img src="images/icons48/gear.png" width="48" height="48">' +
            '<br><select><option>Value1</option><option>Value2</option></select><br>',
        data: {
            key1: val1
        },
    }

Когда я это делаю, код интерпретирует value как метку html. где, как я хотел бы, он интерпретировал только value.display как метку. Я не уверен, как объединить метку html и данные json, и хотел бы получить некоторые предложения.

Пустое пустое изображение


person ex080    schedule 15.10.2019    source источник


Ответы (1)


У вас есть реализация addSidebarIcon в том же файле...

Когда вы найдете:

v1 = graph.insertVertex(parent, null, label, x, y, 120, 120);

Вы должны использовать там не «метку», а извлекать отображаемое значение из вашего JSON.

person Marco    schedule 07.11.2019