jsTree v.3使用ajax调用延迟加载

jsTree v.3 lazy loading with ajax call

本文关键字:调用 延迟加载 ajax 使用 jsTree      更新时间:2023-09-26

我一直在用ajax调用jtree延迟加载,但是我遇到了一个问题。

我的代码成功地带来了1深度的json数据。但是,当我单击或选择node时,它不会带来它的子节点。我不知道我的问题是什么。

这是我的javascript代码

$("#tree").jstree({
		     'core' : {
		     	'data' : {
		          'url' : function(node) {
		              return'/url/getTree';
		             },
		          'type' : 'GET',
		          'data' : function(node) {
		              return {
		                	parentId : node.id ==="#" ? 0 : node.id,
		                	searchdepth : 1
		 	                }
		 	            },
		          'success' : function(data) {
		           	 return data.list
		  		        }
		  		    },
			      'check_callback':true,
		  		    }, 
		  	 "plugins" : ["json_data"]
		  	    });

和我的结果数据是这样的

[{"id":"1","text":"node_1","data":{"selected":"N"},"children":[{"id":"3","text":"node_3","data":{"selected":"N"}},{"id":"2","text":"node_2","data":{"selected":"N"}}]}]

您的JSON文档似乎不正确。文档需要包含恰好一个数组,该数组只包含您请求信息的节点的子节点。

使用你的例子,当你请求id为1的节点信息时你的json应该是这样的:

[
   {"id":"3","text":"node_3","data":{"selected":"N"}, "children":true/false},
   {"id":"2","text":"node_2","data":{"selected":"N"}, "children":true/false}
]