как передать данные из API в GoJS TreeModel - PullRequest
0 голосов
/ 02 февраля 2019

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

Я думаю, это связано с тем, что GOJS использует массив данных, а не JSON.

    var $ = go.GraphObject.make;
    var myDiagram =
        $(go.Diagram, "myDiagramDiv",
            {
                "undoManager.isEnabled": true, // enable Ctrl-Z to undo and Ctrl-Y to redo
                layout: $(go.TreeLayout, // specify a Diagram.layout that arranges trees
                    { angle: 90, layerSpacing: 35 })
            });

    // the template we defined earlier
    myDiagram.nodeTemplate =
        $(go.Node, "Horizontal",
            { background: "#44CCFF" },
            $(go.Picture,
                { margin: 10, width: 50, height: 50, background: "red" },
                new go.Binding("source")),
            $(go.TextBlock, "Default Text",
                { margin: 12, stroke: "white", font: "bold 16px sans-serif" },
                new go.Binding("text", "name"))
        );

    var model = $(go.TreeModel);
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "/api/Employees/", false);
    xmlhttp.send();
    var nodeArray = JSON.parse(xmlhttp.responseText);
    //model = nodeArray;
        myDiagram.model.nodeDataArray = nodeArray;
    //myDiagram.model = model;

1 Ответ

0 голосов
/ 04 февраля 2019

Если вы проверите окно консоли, вы увидите это сообщение об ошибке:

Error: ParentKey value for node data [object Object] is not a number or a string: null

Это потому, что вы установили:

"parent": null

в одном из объектов данных вашего узла.Я предлагаю вам удалить это свойство.

Я также предлагаю использовать библиотеку go-debug.js вместо библиотеки go.js, поскольку отладочная версия библиотеки обнаружит и предупредит вас о большем количестве проблем, чемобычная версия библиотеки.

...