JsTree与Json-Data,不会得到元数据
问题描述:
我读了很多关于jsTree/Json/metadat的建议,但是我没有找到一个可行的解决方案。如果单击节点,我想获取元数据(例如id)。JsTree与Json-Data,不会得到元数据
月1日我的JSON数据:
其创建树和应该得到的点击ID(Ajax调用一些的Oracle APEX的东西)function populateTree(pRegionId) {
console.log('---Js Tree---');
$.ajax({
type : 'POST',
async : true,
url : 'wwv_flow.show',
data : {
"p_request" : 'APPLICATION_PROCESS=GET_TREE',
"p_flow_id" : $v('pFlowId'), // app id
"p_flow_step_id" : $v('pFlowStepId'), // page id
"p_instance" : $v('pInstance'), // session id
},
ggg : pRegionId,
success : function (data) {
console.log(data);
var jsonobj = JSON.parse(data);
apex.jQuery("#" + this.ggg).jstree({
"themes" : {
"theme" : "default",
"dots" : false,
"icons" : true
},
"json_data" : {
"data" : [jsonobj]
},
"plugins" : ["themes","json_data", "ui"]
//}).bind("select_node.jstree", function (e, data) { alert(data.rslt.obj.data("jstree").id); });
}).bind("select_node.jstree", function (e, data) {
console.log(data);
});
}
});
}
3的对象,其中
[
{
"data":{
"title":"TEST",
"icon":"/i/small_folder.gif",
"attr":{
"id":"1000000000000000021"
},
"metadata":{
"id":"1000000000000000021"
}
}
}
]
第二JS功能身份证应该是(萤火虫domview):
args [a#1000000000000000301.jstree-clicked #, true, Object { originalEvent=Event click, type= "click", timeStamp=30977664, mehr...}]
inst Object { data={...}, get_settings=function(), _get_settings=function(), mehr...}
rlbk false
rslt Object { obj={...}, e={...}}
e Object { originalEvent=Event click, type="click", timeStamp=30977664, mehr...}
obj jQuery(li.jstree-closed)
如你所见,没有身份证。所以我想元数据部分是杂乱的,但我不知道错误在哪里。
在此先感谢 马里奥
答
最后我找到了我的错误了。如果你能在JSON代码从上面看到:(?)
[
{
"data":{
"title":"TEST",
"icon":"/i/small_folder.gif",
"attr":{
"id":"1000000000000000021"
},
"metadata":{
"id":"1000000000000000021"
}
}
}
]
的metadataobject就像ATTR的数据对象之内,所有在线验证告诉我,我的杰森码是有效的。但metadatas正确的地方是在数据后:
[
{
"data":{
"title":"TEST",
"icon":"/i/small_folder.gif",
"attr":{
"id":"1000000000000000021"
}
},
"metadata":{
"id":"1000000000000000021"
}
}
]
现在我得到的ID下面的JS
.bind("select_node.jstree", function (e, data) {
console.log(data.rslt.obj.data("id"));
});
如果你想在L1标签内的ID把生成的attr对象bevor数据对象,如:
[
{
"attr":{
"id":"1000000000000000021"
},
"data":{
"title":"TEST",
"icon":"/i/small_folder.gif",
"attr":{
"id":"1000000000000000021"
}
},
"metadata":{
"id":"1000000000000000021"
}
}
]
铜很快 马里奥
嘿@Mario,你能接受你自己的答案!这将标记问题解决,这将有助于其他谁绊倒在这个问题上。 – Tom 2013-02-21 08:55:48
谢谢汤姆。完成 – Mario 2013-02-21 10:06:13
非常感谢您的帮助! – Yashasvi 2014-07-02 11:12:12