2013-02-06 2 views
1

분기을 jstree 인스턴스 (예 : 알 수없는 레벨의 하위 노드가있는 노드)에 추가하는 방법.jsTree : 복잡한 노드를 추가하는 방법

// example of a branch (with one level) 
var branch = { 
    "data":"Folder 1", 
    "attr":{"rel":"Layer","elt":1}, 
    "state":"closed", 
    "children":[ 
     { 
      "data":"Item 4", 
      "attr":{"rel":"File 1","elt":2}, 
      "state":"", 
      "children":null 
     } 
    ] 
}; 

그리고 jstree 인스턴스에서이 지점을 추가 :

// -1 means root 
$.jstree._reference('#tree').create_node(-1, 'last', branch, false, false); 

하지만 실패! 아이들은 만들어지지 않습니다.

답변

1

내 솔루션은 수동으로 재귀 적으로 모든 노드를 만드는 것입니다 :

function LoadElement(node, branch) { 
    data = { 
     data: branch.name, 
     attr: branch.attr, 
     state: branch.state 
    }; 
    var node = $.jstree._reference('#tree').create_node(
     node, 'last', data, false, false 
    ); 
    if (typeof branch.children === 'undefined') return false; 
    for (var i=0; i<branch.children.length; i++) { 
     LoadElement(node, branch.children[i]); 
    } 
} 

// -1 means root 
LoadElement(-1, branch); 
관련 문제