Я пытаюсь найти элемент в иерархическом источнике данных кендо. Это необходимо, чтобы получить uid этого элемента и сделать этот узел элемента в Kendo Treeview программно выбранным.
Вот код. Простите меня за корявый алгоритм.
function findTreeviewNodeById(haystack, needle) {
var uid = null;
for (var i = 0; i < haystack.length; i++) {
if (haystack[i].id == needle) {
uid = haystack[i];
}
else if (haystack[i].hasChildren) {
uid = findTreeviewNodeById(haystack[i].children.data(), needle);
}
if (uid != null)
break;
}
return uid;
}
Приведенный выше код работает только для иерархического источника данных с 2 уровнями глубины. Если я попытаюсь накормить его более глубоким иерархическим источником данных, когда он достигнет 3-го уровня, эта строка haystack[i].children.data() вернет пустых детей (предполагается, что она не пуста). Почему 3-й уровень источника данных пуст? Несмотря на то, что Treeview отлично отображал все данные, содержащиеся в иерархическом источнике данных. Я что-то упустил здесь?