jsTree不使用AJAX渲染

时间:2014-10-30 01:12:21

标签: javascript ajax jstree

我正在尝试实现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 /)

2 个答案:

答案 0 :(得分:1)

我发现它没有渲染的问题。即使文档声明如果未设置JSON标头,那么您可以指定“dataType”:“json”它不起作用。我必须转到我的方法并将返回类型添加为方法的“application / json”。然后它工作了。

答案 1 :(得分:0)

也许问题是你是用ajax加载内容的,所以当文件准备好时,treejs插件会尝试读取数据,但是ajax仍然没有响应,所以,你必须“回忆”你的文件.ready函数让插件在完成ajax请求时使用数据......

就像这个答案,不同的情况,但同样的情况。

https://stackoverflow.com/a/26559809/2043592

相关问题