javascript - 如何从本地存储重新加载 jstree?

标签 javascript json local-storage jstree

我正在使用 jstree 访问 xml。我需要将树中创建的节点等保存到本地存储。 所以,我现在正在做的是,当创建节点时,我使用“get_json”将树的实例转换为 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)); 
   })
};

当我从 localStorage 检索“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"],
  })

我是 javascript 新手,所以这可能是一个愚蠢的问题,但任何有关如何继续的建议将不胜感激。谢谢。

最佳答案

这行很奇怪:

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

getItem 没有第二个参数。

我想你想要:

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

关于javascript - 如何从本地存储重新加载 jstree?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27537825/

相关文章:

javascript - IE 中 json 文件的 msSaveBlob 的 InvalidStateError

javascript - 为什么 BST(英国夏令时/夏令时)被添加到我的 Node 日期时间中?

javascript - 检查表单以查看是否有任何输入对 jQuery each 方法有值(value)

ios - iPhone 上的 URL 错误,当我在浏览器中输入它时它可以工作

javascript - 无法使用 localStorage 读取未定义的属性推送

PHP & 本地存储;

javascript - 在 jQuery 的 div 之间添加 div

json - 如何从json中获取未转义的值

C# Json 反序列化具有更改名称的属性

javascript - 在 AsyncStorage React Native 上保存对象数组