2014-04-16 26 views
2

Fancytree를 사용하여 웹 페이지에 표시하고 lazyLoad 옵션을 사용하여 폴더의 내용을 표시하는 트리 폴더 구조가 있습니다. 이 기능은 처음에는 잘 작동하지만 폴더 아래에 항목이없고 확장 된 경우 항목이 없기 때문에 확장/축소 아이콘이 사라집니다. 빈 폴더에 일부 폴더를 만들면 새로운 내용을 표시하기 위해 Ajax 호출을 다시 발생시키는 방법이 없습니다. 이것이 어떻게 달성 될 수 있는지 생각해보십시오. (노드가 붕괴 될 때, 예를 들어)Fancytree Lazyload : 확장 할 때마다 Ajax를 호출하십시오.

$("#officialTreeView").fancytree({ 
     extensions: ["table"], 
     aria: true, 
     source: { 
      url: "myurl/jsonoutput", 
      data: {key: "1" }, 
      cache: false 
     }, 
     lazyLoad: function(event,data) { 
      var node = data.node; 
      //data.node.load(true);    
      // Issue an ajax request to load child nodes 
      data.result = { cache:false, url: "myurl/jsonoutput", data: {key: node.key } } 
     },   
     renderColumns: function(event, data) { 
      var node = data.node,    
       $tdList = $(node.tr).find(">td"); 
      //console.log(node);  
      $tdList.eq(1).text(node.data.childcount); 
     } 
    }); 

답변

0

즉 당신의 설정에 붕괴에 대한 이벤트 처리기를 추가

collapse: function(event, data){ 
    data.node.resetLazy(); 
},