【问题标题】:How to reload a jstree from local storage?如何从本地存储重新加载 jstree?
【发布时间】:2014-12-18 09:44:32
【问题描述】:

我正在使用 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 新手,所以这可能是一个愚蠢的问题,但任何关于如何进行的建议将不胜感激。谢谢。

【问题讨论】:

  • state 插件不符合您的要求吗?
  • 状态插件不只记得打开/关闭了哪些节点吗?
  • 创建/删除节点等时需要保存树。
  • 不知道state是否保存了新节点。如果它真的在拯救国家,我会假设它确实如此。不幸的是,文档没有提到它。

标签: javascript json local-storage jstree


【解决方案1】:

这行很奇怪:

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

getItem 没有第二个参数。

我想你想要:

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

【讨论】:

  • 哦,是的,我的错,在我的代码中,我将“getItem”和“JSON.parse”作为两个单独的语句,我试图在问题中将它们结合起来并做了一个滑倒。 :)
  • 你知道如何使用 json 数据重建树吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 2020-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-31
相关资源
最近更新 更多