Как перезагрузить jstree из локального хранилища?

Я использую jstree для доступа к xml. Мне нужно сохранить созданные узлы и т. д. в дереве в локальном хранилище. Итак, что я делаю прямо сейчас, так это то, что при создании узла я преобразовываю экземпляр дерева в форму json, используя «get_json», а затем, используя «JSON.stringify», я конвертирую его в строку json. Я сохраняю эту строку json в локальном хранилище как «SavedTree».

  .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, поэтому это может быть глупый вопрос, но любые советы о том, как действовать, будут оценены. Спасибо.


person Tiffany    schedule 18.12.2014    source источник
comment
Плагин state не делает то, что вы хотите?   -  person    schedule 18.12.2014
comment
Разве плагин состояния просто не запоминает, какие узлы открыты/закрыты?   -  person Tiffany    schedule 18.12.2014
comment
Мне нужно сохранить дерево при создании/удалении узла и т. д.   -  person Tiffany    schedule 18.12.2014
comment
Я не знаю, сохраняет ли state новые узлы. Я бы предположил, что это так, если бы это действительно спасало государство. В документации об этом, к сожалению, не упоминается.   -  person    schedule 18.12.2014


Ответы (1)


Эта строчка странная:

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

getItem не имеет второго аргумента.

Я думаю, вы хотите:

var NewTree = JSON.parse(localStorage.getItem('SavedTree'));
person Halcyon    schedule 18.12.2014
comment
О да, мой плохой, в моем коде есть getItem и JSON.parse как два отдельных утверждения, я попытался объединить их в вопросе и сделал оговорку. :) - person Tiffany; 18.12.2014
comment
У вас есть представление о том, как использовать данные json для восстановления дерева? - person Tiffany; 18.12.2014