我正在使用 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/