我正在尝试实现jsTree和AJAX以在服务器上显示动态文件结构。我将网页设置为
<div id="tree">
</div>
我的Javascript是
$(document).ready(function(){
$('#tree').jstree({
'core' : {
'data' : {
'url' : function(node) {
return 'folder/?folder=' + ((node.id === '#')?'':node.id);
},
'type': 'GET',
'dataType': 'json',
'contentType':'application/json',
'data' : function (node) {
return { 'id' : node.id };
}
}
}
});
});
我的Java端点以此JSON格式返回一个String。
[
{
"id":"ci/",
"text":"ci",
"parent":"#"
},
{
"id":"dev/",
"text":"dev",
"parent":"#"
},
{
"id":"prod/",
"text":"prod",
"parent":"#"
}
]
当我在javascript和Java中放入断点时,我看到首先调用“url”函数,然后调用“data”函数,然后进入后端。它返回String,但没有任何反应。我唯一的节目是“正在加载......”
我从https://github.com/vakata/jstree/zipball/3.0.8下载了jsTree,我从zip中包含了两个文件
<script src="${pageContext.request.contextPath}/js/vendor/jstree.min.js"></script>
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/style.min.css">
理想情况下,我要做的是构建一个文件夹树结构,用户最终会选择将文件上传到S3的位置。我想在点击时懒惰加载文件夹,id将是文件夹路径(即dev / en_US / someFolder / images /)
答案 0 :(得分:1)
我发现它没有渲染的问题。即使文档声明如果未设置JSON标头,那么您可以指定“dataType”:“json”它不起作用。我必须转到我的方法并将返回类型添加为方法的“application / json”。然后它工作了。
答案 1 :(得分:0)
也许问题是你是用ajax加载内容的,所以当文件准备好时,treejs插件会尝试读取数据,但是ajax仍然没有响应,所以,你必须“回忆”你的文件.ready函数让插件在完成ajax请求时使用数据......
就像这个答案,不同的情况,但同样的情况。