以下是我设置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的?
答案 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
已记录在案并保留 - 所以这是存储数据的更安全的地方。