Jquery jsTree无法从AJAX调用加载根节点
我无法使用下面的jsTree加载初始根节点: 数据位于服务器上,必须通过AJAX为每个选定节点“购买”。我还想使用一个复选框并获取所选节点的所有父节点的值 现在的主要问题是:我无法列出根节点Jquery jsTree无法从AJAX调用加载根节点,jquery,ajax,jstree,Jquery,Ajax,Jstree,我无法使用下面的jsTree加载初始根节点: 数据位于服务器上,必须通过AJAX为每个选定节点“购买”。我还想使用一个复选框并获取所选节点的所有父节点的值 现在的主要问题是:我无法列出根节点 //jsTree $('#testTree').jstree({ 'core' : { 'data' : { 'url' : function (node) { r
//jsTree
$('#testTree').jstree({
'core' : {
'data' : {
'url' : function (node) {
return node.id === '#' ?
'/cgi-bin/test.pl' //url for root nodes
'/cgi-bin/test.pl?nodes-in-selected-heirarchy'; //url for children nodes
},
'data' : function (node) {
console.log('node.id='+node.id);
return { 'id' : node.id };
}
}
}
});
这显示的只是一个文件夹图标
我从服务器获得的JSON
是:
{"5":"summer","8":"vacation","2":"2015","3":"2014","4":"2013","6":"winter","1":"2016","7":"birthday"}
它是一种键:值,
格式
这里有一个新的修改代码:即使这样也不起作用
$('#test').jstree({
'core': {
'data':{ //this is the data provided to the jsTree to draw the tree.
'url': function( node ){
if( node.id === '#' ){
console.log('1');
return "/cgi-bin/test.pl";
} else {
console.log('2');
return "/cgi-bin/test.pl?jsTreeParentKey=" + node.data( "key" );
}
},
'data': function(node) { //the data sent to the server
console.log('node.id='+node.id);
return {
'id': node.id,
'xyz': 'value_xyz' //extra set of param=value sent to server
};
},
'success': function (retData) {
data = [];
for( indx in retData ){
var value = retData[indx]
console.log('indx=i'+indx+', value='+value);
node = {
'id' : 'i'+indx,
'text' : value,
'icon' : '/',
//'metadata' : value,
'state' : {'opened' : false} //'state' : 'closed'
}
data.push( node );
}
return data;
}
// "check_callback" : true
}
},
"checkbox" : {
"keep_selected_style" : false
},
"plugins" : [ "checkbox","json_data" ]
});
我在日志中看到:
1 <---- from URL
node.id=# <----from param sent
indx=i1, value=2016
indx=i2, value=2015
indx=i3, value=2014
indx=i4, value=2013
indx=i5, value=summer
indx=i6, value=winter
indx=i7, value=birthday
indx=i8, value=vacation
1您的数据格式(从服务器返回的JSON)不是所需的jsTree格式。在每个节点上至少包含一个text
属性
以下是详细的文档:
你好,伊万,非常感谢您的评论!!是的,我的数据是(而且我更喜欢)成对输入的。但我认为“成功”程序就是使用它,然后在将其作为“用于构建树的数据”处理到插件之前制作所需的数据格式。不是吗?因为我在“成功”例程中构建的数据数组与网站上给定“节点”的要求相匹配。敬请告知,在将来自服务器的数据(密钥、值对)交付给pluigin之前,如何处理这些数据?我在其他地方发现,该插件不支持成功例程。因此,我将尝试数据过滤器(这是一种“成功”)