Как получить данные дедушки в kendo.data.HierarchicalDataSource?
Я использую привязку дерева KendoUI к удаленным данным, ниже приведен мой код:
<script>
var serviceRoot = "/kendoui";
var Taxonomys = {
schema: {
model: {
id: "Name",
hasChildren: function () {
return false;
}
}
},
transport: {
read: {
url: function (options) {
return kendo.format("http://localhost/MySite/MySiteService.svc/Organization/{1}/Project/{0}/Taxonomy?includeSchema=0", options.Name);
}
}
}
};
var Projects = {
schema: {
model: {
id: "Name",
hasChildren: function () {
return true;
},
children: Taxonomys
}
},
transport: {
read: {
url: function (options) {
return kendo.format("http://localhost/MySite/MySiteService.svc/Organization/{0}/Project", options.Name);
}
}
}
};
homogeneous = new kendo.data.HierarchicalDataSource({
transport: {
read: {
url: "http://localhost/MySite/MySiteService.svc/Organization ",
dataType: "jsonp"
}
},
schema: {
model: {
id: "Name",
hasChildren: function () {
return true;
},
children: Projects
}
}
});
$("#treeview").kendoTreeView({
dataSource: homogeneous,
dataTextField: ["Name", "Name", "Name"]
});
</script>
в таксономии мне нужно название организации.
http://localhost/MySite/MySiteService.svc/Organization/{1}/Project/{0}/Taxonomy?includeSchema=0
но опции в "url: function (options) {}" имеют только имя проекта. Как я могу получить имя родителя проекта?
1 ответ
Учитывая узел в дереве, вы должны использовать parent
метод навигации по дереву.
Пример. Если мы хотим получить прародителя выбранного узла, мы должны использовать:
var select = treeview.select();
console.log("select", select);
if (select.length) {
var parent = treeview.parent(select);
if (parent.length) {
console.log("parent", treeview.dataItem(parent));
var grandparent = treeview.parent(parent);
if (grandparent.length) {
console.log("grandparent", treeview.dataItem(grandparent));
} else {
console.log("has no grandfather")
}
} else {
console.log("has no father")
}
} else {
console.log("select a node");
}
Как видите, я проверяю, выбран ли узел, есть ли у него отец и есть ли дедушка.
Я также показываю данные этого пункта. При этом вы сможете получить информацию об Организации и Проекте, поскольку они являются частью модели.