如何从服务器JSON向jsTree添加元数据并检索元数据

How to add metadata to jsTree from server JSON and retrieve the metadata

本文关键字:元数据 添加 检索 jsTree 服务器 JSON      更新时间:2023-09-26

下面是我如何设置我的jtreediv:

$("#jsTree").jstree({
  'core' : {
    'data' : {
        'url' : 'users/initialize-jstree',
        'data' : function (node) {
            return { 'id' : node.id };
        }
    }
  }
}).bind("select_node.jstree", function (event, data) {
    console.log( data );
    console.log( data.node.text );
    console.log( data.testTestOne);
});

在我从URL返回的JSON中,我包含了一个元数据对象,如下所示:

{
    "id":3,
    "text":"My Node Text",
    "children":[],
    "metadata": {
        "testTestOne":"Test metadata 1",
        "testTestTwo":"Test metadata 2"
    }
}

然而,我似乎无法在.bind()中检索元数据。

更具体地说,其他SO Q&A不工作,因为data.rslt总是undefined出于某种原因,

是否有什么问题,我如何提供它在JSON从服务器,或者我如何设置jtree ?

您可以使用以下命令轻松获取metadata键:

console.log(data.node.original.metadata);

然而,我建议在您的回复中使用data而不是metadata:

{
    "id":3,
    "text":"My Node Text",
    "children":[],
    "data": {
        "testTestOne":"Test metadata 1",
        "testTestTwo":"Test metadata 2"
    }
}

然后你可以使用:

获取自定义数据
console.log(data.node.data);

请注意,没有original键没有记录,可能会被删除,但data被记录并留在这里-所以它是存储数据的更安全的地方。