1

当前网页显示一个静态 jstree。该脚本(如下所示)与 JSP 页面位于同一文件中,使用添加到 spring 模型的数据。

设置#1

<div id="permissions" class="scroll"></div>
<script type="text/javascript" class="source">
    $(function () {
        $("#permissions").jstree({ 
            "plugins" : [ "themes", "json_data", "checkbox", "sort", "ui" ],
            "checkbox" : { "override_ui" : true },
            "themes" : { "icons" : false },
            "json_data" : { "data" : ${permissionTree} }
        });
    });
</script>

为了对其进行更多的动态控制,我将脚本移动到一个 javascript 文件中,并使其能够显示不同的信息。不过,出于测试目的,我使用的数据与以前完全相同。

设置 #2

function getPermissions(str) {
$.getJSON("getPermissions.htm", {id : str},
    function(data) {
        $(function () {
            $("#permissions").jstree({ 
                "plugins" : [ "themes", "json_data", "checkbox", "sort", "ui" ],
                "checkbox" : { "override_ui" : true },
                "themes" : { "icons" : false },
                "json_data" : { "data" : JSON.stringify(data) }
            });
        });
    });

}

但是,使用设置 #2,树显示原始 JSON,而不是树。我已经确认在这两种情况下data都是一样的。那么给了什么?为什么它不能以这种方式工作?

4

1 回答 1

3

"data"在下面的代码片段中应该包含一个对象或数组值。

"json_data" : { "data" : JSON.stringify(data) }

试试这个:

"json_data" : { "data" : data }
于 2012-09-19T18:19:40.143 回答