2012-05-30 5 views
2

모든 자식이 json 호출로 비동기 적으로로드되는 JsTree 인스턴스가 있습니다.JsTree json 리프 감지

사용자가 을 선택했는지 어떻게 확인할 수 있습니까? 리프 노드가 있습니까?

나는 ajax의 success 콜백을 사용하려고했지만 "+"가있는 노드를 열면 물론 호출된다. "자식 노드로드"와 같은 이벤트가 있습니까?

+0

데이터를 가져 오기 위해 ajax를 실행해야합니다. 노드가 리프 유형인지 확인할 수 있습니다. 또는 나는 무엇인가 놓치고 있냐? 리프 또는 리프가 아닌 데이터는 데이터에 따라 다릅니다. 아약스 호출이 완료되기 전에 데이터를 준비 할 필요가 없습니다. – Radek

답변

2

라데크, 맞습니다.

결국 나는 다른 해결책을 생각해 냈습니다. 서버에서 자식 노드를 요청하는 동안 노드에 자식 노드가 있는지 여부를 감지합니다. 더 '아이들'과 '상태'jsTree 잎 노드로이 인식 응답 속성 없습니다있는 경우

success: function (data) { 
    return $.map(data.d, function (item) { 
    if(item.HasChildren) 
     return { 
      data: item.data, 
      state: item.state, 
      attr: item.attr, 
      children: item.children 
     }; 
     else 
      return { 
      data: item.data, 
      attr: item.attr 
     }; 
    }) 
} 

: 응답에 플래그를 추가하여이 같은 클라이언트에서이 정보를 사용할 수 있습니다 DTO. 이제 "node_select"에서 jsTree의 .is_leaf (node) 메소드를 사용할 수 있습니다.