1

スタックオーバーフローで初めて:-)。私は主にLeo Outlinerを使用してタスクと執筆を整理しており、複雑な主題について自分の考えを明確にするために非常にうまく機能していますが、他の人は Leo を使用していないため、自分の明確さを他の人と簡単に共有することはできません. テストとして、Leo から Dynatree への小さなエクスポート スクリプトを作成しましたが、これはかなりうまく機能します。問題は、dynatree がスクリプト内の静的データに対してのみ機能することですが、次のようなコードを使用しようとしています。

<script type="text/javascript">
$(function(){
    $("#tree").dynatree({
         // In real life we would call a URL on the server like this:
             //          initAjax: {
             //              url: "/getTopLevelNodesAsJson",
             //              data: { mode: "funnyMode" }
             //              },
        // .. but here we use a local file instead:
        initAjax: {
            url: "sample-data1.json"
            data: { mode: "all" }
            },
        onActivate: function(node) {
            $("#echoActive").text(node.data.title);
        },
        onDeactivate: function(node) {
            $("#echoActive").text("-");
        }
    });
});

ファイルが存在し、適切な権限があるにもかかわらず、sample-data1.json をロードする部分が機能しません。ここで検索しました:

MVC を使用して Ajax 経由で Dynatree をロードする方法 https://groups.google.com/forum/?fromgroups=#!msg/dynatree/kZqIO1zCTSU/HYTFe9O2docJ

および他の場所はウェブ上にありますが、外部データからのこの読み込みを有効にする方法が見つかりません。ライブラリを YUI または ExtJS 用に変更することも考えました。jstreeを使用して web2py でツリーがサポートされるようになりましたが、dynatree、YUI、または ExtJS とは対照的に、JsTree のドキュメントはあまり初心者向けではありません。

解決策へのポインタをいただければ幸いです。

4

1 に答える 1

1

ファイルはどこにありますか?

最善の方法は、ファイルを静的フォルダーの下に置くことです

web2py/applications/yourapp/static/sample-data1.json

したがって、静的フォルダーからこれをロードするように Javascript に指示する必要があります。

initAjax: {
    url: "yourapp/static/sample-data1.json",
    data: { mode: "all" }}

または、URL を動的に作成することもできます

<script>

var url_to_sample_data = "{{=URL('static', 'sample-data1.json')}}";

.....

initAjax: {
            url: url_to_sample_data,
            data: { mode: "all" }
            }

.....

</script>
于 2013-01-02T00:30:12.483 に答える