2014-12-18 1 views
0

xml에 액세스하는 데 jstree를 사용하고 있습니다. 내가 만든 노드 등을 로컬 스토리지에 저장해야합니다. 그래서 지금 내가하고있는 일은 노드가 만들어지면 트리의 인스턴스를 'get_json'을 사용하여 json 형식으로 변환 한 다음 'JSON.stringify'를 사용하여 json 문자열로 변환합니다. 이 json 문자열을 'SavedTree'라는 로컬 저장소에 저장합니다. 로컬 저장소에서 jstree를 다시로드하는 방법은 무엇입니까?

.bind('create_node.jstree', function(e, data){ 
    var jsonForm =$('#treeContainer').jstree('get_json', -1); 
    localStorage.setItem('SavedTree', JSON.stringify(jsonForm)); 
    }) 
}; 

내가 로컬 스토리지에서 'SavedTree'을 검색

, 나는 그것을 JSON으로 다시 문자열을 변환하는 구문 분석 :

var NewTree = localStorage.getItem('SavedTree'); 
var NewTree = JSON.parse(NewTree); 

'NewTree는'JSON 형태이다. 아래 코드에서 '데이터'로 사용할 수 있도록 다시 트리의 인스턴스로 변환하는 방법은 무엇입니까?

("#treeContainer").jstree({ 
    "json_data" : { 
     "data": data 
     "progressive_render":"true" 
     }, 
    "plugins": [ "json_data", "contextmenu", "crrm", "dnd", "unique"], 
    }) 

저는 자바 스크립트에 익숙하지 않으므로 어리석은 질문 일 수 있습니다. 진행 방법에 대한 조언을 주시면 감사하겠습니다. 감사.

+0

는'state' 플러그인은 당신이 원하는 일을하지 않는 이유는 무엇입니까? –

+0

상태 플러그인은 어떤 노드가 열리거나 닫혔는지 기억하지 못합니까? – Tiffany

+0

노드가 생성/삭제 될 때 트리를 저장해야합니다. – Tiffany

답변

1

이 줄은 이상해 :

var NewTree = localStorage.getItem('SavedTree', JSON.parse(SavedTree)); 

getItem

은 2 인자를 가지고 있지 않습니다.

난 당신이 원하는 생각 :

var NewTree = JSON.parse(localStorage.getItem('SavedTree')); 
+0

오, 내 잘못, 내 코드에서 "getItem"및 "JSON.parse"두 개의 별도 진술로있어, 나는 그들을 질문에 결합하려하고 전표를 만들었습니다. :) – Tiffany

+0

json 데이터를 사용하여 트리를 다시 작성하는 방법에 대한 아이디어가 있습니까? – Tiffany