2014-12-18 2 views
0

Я использую jstree для доступа к xml. Мне нужно сохранить созданные узлы и т. Д. В дереве на локальное хранилище. Итак, что я делаю прямо сейчас, когда создается узел, я конвертирую экземпляр дерева в форму json, используя 'get_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' из LocalStorage, я разобрать его, чтобы преобразовать строку обратно в 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"], 
    }) 

Я новичок в JavaScript, так что это может быть глупый вопрос, но какой-либо совет о том, как действовать будут оценены. Благодарю.

+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

Смежные вопросы