将远程JSON数据绑定到Kendo TreeView - 仅获取第一层

时间:2017-07-27 23:12:52

标签: jquery json kendo-ui treeview kendo-treeview

我目前正试图让Kendo TreeView显示一些JSON数据。

var treeViewDataSource = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: "/Utilities/Tool/Get/TreeView",
                type: "get",
                dataType: "json"
            }
        }
    });

    $("#tree-view").kendoTreeView({
        loadOnDemand: false,
        dataSource: treeViewDataSource,
        select: onSelect
    });

我的JSON数据如下所示:

[{
    "text": "CREATE",
    "description": "Create Transaction",
    "items": [
        {
            "text": "PSEUDO",
            "feature": "CREATE",
            "items": [
                {
                    "text": "FIX",
                }
            ],
            "nodeChildren": 1
        }
    ],
    "nodeChildren": 1
},
{
    "text": "DATA",
    "description": "Data Report",
    "items": [],
    "nodeChildren": 0
}]

现在,奇怪的是,如果我将上述JSON数据复制并粘贴到kendo DataSource而不是远程调用它,TreeView就会很好地显示数据。当我远程调用数据时,TreeView只显示第一层节点,看起来像这样:

CREATE

DATA

在桌子加载时短暂的一秒钟,可以看到指示节点是否有孩子的小箭头,但这些很快就会消失。我不确定发生了什么,而且Kendo文档不是很有帮助。为什么剑道不能正确读取这些数据?我使用Postman测试API,JSON对我来说看起来非常好,如果在本地复制,则可以正常工作。是什么给了什么?

由于

1 个答案:

答案 0 :(得分:1)

我找到了解决问题的方法,我所要做的就是弄乱架构,尽管我还不完全了解架构的工作原理。

var treeViewDataSource = new kendo.data.HierarchicalDataSource({
        transport: {
            read: {
                url: "/Utilities/Tool/Get/TreeView",
                type: "get",
                dataType: "json"
            }
        },
        schema: {
            model: {
                children: "items"  
            }
        }
    });

我所要做的就是定义儿童场。