Kendo Hierarchical Datasource 内のアイテムを検索しようとしています。そのアイテムの 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 レベルが空なのはなぜですか? ツリービューは階層データソース内に含まれるすべてのデータを完全に表示しましたが。ここで何か不足していますか?