2015-02-06 4 views
1
var count = 0; 
var subcount = 0; 
var subdata = []; 
var treeData = []; 
for (var catId in cats) { 
    for (var subCatId in cats[catId].m_itemGrpList) { 
     subdata[subcount] = [{ 
          id: subCatId, 
          label: GetDisplay(cats[catId].m_itemGrpList[subCatId]) 
     }]; 
     subcount = subcount + 1; 
    } 
    treeData[count] = [{ 
     id: catId, 
     label: GetDisplay(cats[catId]), 
     children: subdata 
    }]; 
    count = count + 1; 
} 

$tree.tree({ 
    data: treeData, 
    onCreateLi: function(node, $li) { 
     if (node.color) { 
      var $title = $li.find('.jqtree-title'); 
      $title.addClass(node.color); 
     } 
    } 
}); 

배열 객체가 생성되고 배열에 저장되지만 jqtree는 배열 내부의 객체가 아닌 객체를 허용합니다. 내가 어떻게 이럴 수 있지.배열에서 jqtree를 만드는 방법

이 트리에는 부모 노드가 있고 한 부모에는 여러 자식 노드가있을 수 있습니다.

답변

0

나는 대답을 얻었다. 그냥 다른 초보자를위한. 잘못된 데이터 구조를 사용하고있었습니다. 나는 이렇게해야한다 :

var treeData = []; 
    for (var catId in cats) { 
     var subdata = []; 
     var subCatObj; 
     for (var subCatId in cats[catId].m_itemGrpList) { 
      if(cats[catId].m_itemGrpList[subCatId].m_totalCount <=0) 
       continue; 
      subCatObj = { 
          id: subCatId, 
          label: GetDisplay(cats[catId].m_itemGrpList[subCatId]) 
         } 
      subdata.push(subCatObj); 
     } 
     var catObj = { 
         id: catId, 
         label: GetDisplay(cats[catId]), 
         children: subdataenter code here 
        } 
     treeData.push(catObj); 
    }