我们使用 jstree 作为导航菜单编辑器,并将元数据分配给树的节点,如下所示:
var data = currentNode.data("jstree");
data.title = textBoxTitle.val();
data.linkType = textBoxLink.val();
我可以看到 data
对象包含相关属性,但不太确定 jquery 在该点之后将关联数据保存在哪里。
当我们保存数据(将其序列化为我们的服务器端语言)时,元数据似乎被忽略......
var json = jQuery.jstree._reference(tree).get_json();
var jsonString = JSON.stringify(json);
检查 json
对象没有描述元数据的属性。
我们如何序列化对象及其元数据?
提前致谢,
- 格雷格。
最佳答案
简要阅读文档,在我看来,您似乎应该使用节点上的属性来存储元数据。您可以使用 HTML5“data-”属性:
currentNode.attr('data-title', textBoxTitle.val());
currentNode.attr('data-link-type', textBoxLink.val());
然后当你执行 .get_json()
时从树中你可以告诉它你想要什么属性:
var json = jQuery.jstree._reference(tree).get_json(-1, ['data-title', 'data-link-type', 'id', 'class']);
.get_json
函数实际上需要 2 个属性名称列表,其中一个代表 <li>
节点和一个 <a>
节点(按该顺序)。我不知道你的树是什么样子,所以我不确定你的属性会去哪里。 (另外,前导的“-1”参数告诉它获取整个树,这是您之前通过不传递任何内容来完成的。)
关于jquery - 获取JSTree的JSON数据,及其元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4015297/