나는 그들 각각이 구조처럼 객체의 배열을 가지고있다.Jstree : 정의되지 않은 속성 자식은 읽을 수 없습니다. 타이밍 문제? <pre><code>var data = [{ "code" : "i1", "name" : "Industry 1", "parentCode" : "i0" }, { //and more items just like that one }]; </code></pre> <p></p> 그래서 난 계층보기를 구축 할 <code>jstree</code>을 사용하고 있습니다 :
datatree = $.map(data, function (item) {
return {
id : item.code,
text : item.name,
parent : item.parentCode
};
});
을 그리고 난 내 hierarchy
DIV 내부의 실제 트리를 초기화 : jstree
이 id
및 text
필요하기 때문에,이 같은 data
배열을지도
$('#hierarchy').jstree({
"core": {
"themes": {
"variant": "large"
},
"data": datatree,
},
'check_callback': true,
"checkbox": {
"keep_selected_style": false
},
"plugins": ["wholerow", "search", "unique"]
});
이 트리를 구축하고 잘 작동 할 때 원래의 배열은 꽤 간단합니다. 아마도 한두 단계의 계급이 있습니다. 내가 정확히 대안 배열 빌드 같은 방식으로,하지만 parentages의 5 개 수준으로 테스트하는 경우, 콘솔 오류가 발생합니다 :
Uncaught TypeError: Cannot read property 'children' of undefined
을 그리고 그것은 jstree
원래 코드에서이 행을 가리키는 것 :
k[c[o].parent.toString()].children.push(c[o].id.toString()),
jstree
에로드 대기중인 항목이 남아 있기 때문에 children 배열을 만들 수 없기 때문에 타이밍 문제라고 의심됩니다. 그러나 나는 내 가정에서 틀릴 수도 있습니다.
간단한 상속성이있는 배열의 경우 코드가 완벽하게 작동하지만 부모 레벨이 여러 개일 때 코드가 깨지면 어떻게 될까요? 내가 생각하기에 타이밍이 맞습니까, 아니면 더 깊은 문제가있을 수 있습니까?
나는 this question을 읽었지만 처음에는 사용자가 AJAX로 작업하여 로컬 객체를 선언하는 문제를 해결 한 것으로 보입니다. 광산은 이미 현지에 있으며 어떤 경우에는 실제로 작동하기 때문에 무슨 일이 일어나는지 잘 모르겠습니다.
{
id : item.code,
text : item.name,
parent : item.parentCode
};
"부모"는 unexisting ID를 가리키는 id를 가지고 : 코드에서 때,
해당하지 않고 부모와
작동하지 않는 다단계 소스 배열의 예를 게시 할 수 있습니까? –