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" 
    } 
    } 
] 

铜很快 马里奥

+0

嘿@Mario,你能接受你自己的答案!这将标记问题解决,这将有助于其他谁绊倒在这个问题上。 – Tom 2013-02-21 08:55:48

+0

谢谢汤姆。完成 – Mario 2013-02-21 10:06:13

+0

非常感谢您的帮助! – Yashasvi 2014-07-02 11:12:12