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

时间:2015-10-05 19:09:35

标签: javascript json jstree

以下是我设置jstree div的方法:

$("#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中提供它,或者我是如何设置jstree的?

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式轻松获取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已记录在案并保留 - 所以这是存储数据的更安全的地方。