我有對象的數組,每個人看起來是這樣的結構:Jstree:無法讀取未定義的屬性子項。定時問題?
var data = [{
"code" : "i1",
"name" : "Industry 1",
"parentCode" : "i0"
},
{
//and more items just like that one
}];
所以我用jstree
建立一個層次視圖。由於jstree
需要id
和text
,我的data
陣圖是這樣的:
datatree = $.map(data, function (item) {
return {
id : item.code,
text : item.name,
parent : item.parentCode
};
});
然後我初始化我hierarchy
格內的實際樹:
$('#hierarchy').jstree({
"core": {
"themes": {
"variant": "large"
},
"data": datatree,
},
'check_callback': true,
"checkbox": {
"keep_selected_style": false
},
"plugins": ["wholerow", "search", "unique"]
});
此構建樹和工作正常時,原始數組非常簡單,可能有一兩級深度的親子關係。但是,如果我用另一種陣列構建完全相同的方式,但5級parentages的測試,控制檯拋出一個錯誤:
Uncaught TypeError: Cannot read property 'children' of undefined
而且它指向這個行中的jstree
原代碼:
k[c[o].parent.toString()].children.push(c[o].id.toString()),
我懷疑它是一個時間問題,因爲jstree
無法構建子數組,因爲仍有待加載的項目。但是我的假設可能是錯誤的。
怎麼會這樣,該代碼完全適用於簡單parentages陣列,但是當有多個父級別它打破?這只是我猜測的時機,還是可能存在更深層次的問題?
我已閱讀this question,但似乎用戶最初使用AJAX工作,並解決聲明一個局部對象的問題。礦井已經是本地的,在某些情況下它確實有效,所以我不確定發生了什麼。
如果您重現(SO上或者在這裏可運行的代碼段)在的jsfiddle錯誤是最好的。有一個夾具來調試是必要的,以幫助你在這裏。 – Tomalak
你可以發佈一個不起作用的多級源數組的例子嗎? –