древовидный список кендо с индивидуальным транспортом - PullRequest
0 голосов
/ 28 сентября 2018

Мне нужно составить древовидный список, который получает метаданные из другой конечной точки каждый раз, когда выполняется запрос на чтение, но, очевидно, просто получить работу корневого уровня оказывается проблемой.

Может кто-нибудь увидеть, что ясделали неправильно здесь ...

function build(meta) {
    var grid = $('[name=treelist]');

// ifthere's a previous grid, rip it out
var oldGrid = grid.data("kendoTreeList");
if (oldGrid) {
    oldGrid.destroy();
    grid.empty();
}

var rootData = meta.Properties.map(function (i) {
    return {
        Id: i.Name,
        ParentId: null,
        ServerType: i.ServerType,
        ParentType: { Id: null, Name: meta.Name, Type: meta.ServerType, Meta: meta },
        Name: i.Name,
        Type: i.Type,
        Expression: "",
        CanExpand: i.Type === "object" || i.Type === "array",
        Meta: i
    };
});

// build config for the new grid
var config = {
    dataSource: new kendo.data.TreeListDataSource({
        transport: {
            read: function(o) {
                o.success(rootData);
            }
        },
        data: rootData,
        schema: {
            model: {
                id: "Id",
                parentId: "ParentId",
                hasChildren: "CanExpand",
                fields: {
                    Name:       { field: "Name", type: "string" },
                    Type:       { field: "Type", type: "string" },
                    Expression: { field: "Expression", type: "string" }
                }
            }
        }
    }),
    columns: [
        {
            title: "",
            width: 70,
            template: "<input name='Selected' type='checkbox' data-bind='checked: Selected' #= data.Selected ? checked='checked' : '' #/>"
        },
        { field: 'Id', title: 'Path' },
        { field: 'Name', title: 'Name' },
        { field: 'Type', title: 'Type' },
        { title: "Expression", template: "<input name='expression' type='text' />" },
    ]
};

// tell kendo to build it
grid.kendoTreeList(config);
}

... этот код устанавливает список деревьев, но затем отображает сообщение "нет записей", даже если в базовом наборе есть записи, и я установил его для свойства dataи всегда возвращаться при чтении конфигурации транспорта.

Я не получаю никаких исключений / предупреждений, просто пустой список.

...