1

第一次在堆栈溢出:-)。我一直在使用Leo Outliner主要用于组织我的任务和写作,并且工作得很好,可以让我在复杂的主题上澄清我的想法,但我不能轻易地与其他人分享我的清晰,因为他们不使用 Leo。我已经制作了一个从 Leo 到 Dynatree 的小型导出脚本作为测试,它运行良好,所以我认为是时候使用 web2py + dynatree 创建一个 Web 大纲了。问题是 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" }}

或者您可以动态创建网址

<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 回答