1

現在の Web ページには、静的な jstree が表示されます。スクリプト (以下に表示) は、Spring モデルに追加されたデータを使用して、JSP ページと同じファイルにありました。

セットアップ#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 に答える