Я зараз намагаюся отримати 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
ДАНІ
Протягом короткого секунди під час завантаження таблицівидимі маленькі стрілки, які визначають, чи є у дітей діти, але вони скоро зникають. Я не впевнений, що відбувається, а Документація Kendo не дуже корисна. Чому Kendo не читає ці дані належним чином? Я використовую Postman для перевірки API і JSON виглядає чудово для мене, і працює, якщо копіювати в локально. Що дає?
Дякую
Відповіді:
1 для відповіді № 1Я знайшов рішення для моєї проблеми, все, що я повинен був зробити, був безлад з схемою, хоча я до сих пір не повністю розумію, що / як схема працює.
var treeViewDataSource = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "/Utilities/Tool/Get/TreeView",
type: "get",
dataType: "json"
}
},
schema: {
model: {
children: "items"
}
}
});
Все, що мені потрібно було визначити - це поле для дітей.