2014-07-19 1 views
4

내 트리의 각 노드를 도메인 객체와 연결하려고합니다. 나는 HTML 데이터를 전달하고 수동으로 jQuery를 데이터에 도메인 개체를 저장했다 :jsTree : 도메인 객체에 바인딩

$('li node description').data('obj', my_domain_object); 

그러나, jsTree가 지워 것으로 보인다 $('#jstree_div').jstree(); 중에 데이터입니다.

나중에 $('li node description').data('obj')은 정의되지 않습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? (나는 원칙이 HTML 또는 JSON 데이터에 대해 동일 할 것이라고 추측합니다)

답변

1

jsTree는 데이터를 그대로 유지하지만 최적화 이유로 인해 이동합니다. 콜백에서는 data.node.data.some_key을 통해 액세스해야합니다. 내 예에서, 마법의 주문이었다 :

$('#jsTree_div').on('select_node.jstree', function (e, data) { 
     data.node.data.obj //... (instead of $('#node_id').data('obj')) 
}); 

[1] "이 때문에 속도가 완료 jQuery의이 '.DATA()가'노드가 다시 그려 입증 될 때마다 오히려 느린 사용하여 데이터 연결.. " - Ivan Bozhanov, jsTree 제작자 https://groups.google.com/d/msg/jstree/w97E8uG_Bd0/enYklH-B1-cJ