확장되었을 때 jtree의 노드를 동적으로로드하려고합니다. 내가 찾은 작은 문서는 this page 끝에 있습니다.jsTree로 지연로드
this one과 같은 루프를 사용하여 하나씩 노드를 만드는 몇 가지 솔루션을 찾았습니다. 나는 그것을 시도하지는 않았지만, 문서 페이지를보고 나는 jstree가 노드를 통해 사이클링을 처리해야한다고 생각한다.
plugins: ["json_data"]
을 사용하는 많은 솔루션을 찾았지만 plugins documentation page에는 플러그인이 전혀 언급되어 있지 않습니다. 더 이상 필요하지 않은 플러그인입니까?
$(function() {
var pn = $('#project_number').val();
$('#tree').jstree({
'core' : {
'data' : {
'url' : function(node) {
return '/doc/test2';
},
'data' : function(node) {
return {
'part' : node.id === '#' ? pn : node.id
};
}
}
}
});
});
같은 JSON 텍스트가 함께 작동 :이 같은 문서 페이지에 코드를 수정
$.ajax({
var pn = $('#project_number').val();
url : "bomtree?part=" + pn,
success : function(tree_content) {
var data = $.parseJSON(tree_content);
var config = {
'core' : {
'data' : data
}
};
$('#bom_tree').jstree(config);
}
});
:
내 현재 구현 한 번에 전체 트리를로드하기 위해이 코드를 사용 첫 번째 코드는 두 번째 코드와 함께 사용됩니다. 설명서에 The format remains the same as the above
이 나와 있으므로 변경하지 않았습니다.
I 또한, 본 실시 예에서와 동일한 데이터를 리턴하려고 :
[
{ "id" : "ajson1", "parent" : "#", "text" : "Simple root node" },
{ "id" : "ajson2", "parent" : "#", "text" : "Root node 2" },
{ "id" : "ajson3", "parent" : "ajson2", "text" : "Child 1" },
{ "id" : "ajson4", "parent" : "ajson2", "text" : "Child 2" },
]
하지만 결과는 같다 :
Sizzle.error = function(msg) {
throw new Error("Syntax error, unrecognized expression: " + msg);
};
: JQuery와 다음 행에 Sizzle.error을 던진다 여기서 msg
의 내용은 서버가 반환 한 json 데이터입니다.
무엇이 잘못 되었나요?
jsTree 3.3.5부터는 같은 URL을 사용하면서도 여전히 느린 로딩을 할 수 있습니다. André Bonna의 답변에 따르면''success'' 속성에서'node.children = true'를 설정하면 jsTree가 지연로드를 사용하고 노드가 확장 될 때마다 동일한 URL을 호출하게됩니다. 하나의 URL 만 지정되면 사용 된 URL이됩니다. – barrypicker