Dynatree init从外部数据不起作用

时间:2013-01-01 23:32:56

标签: treeview web2py dynatree

Stack Overflow上的第一次:-)。我一直在使用Leo Outliner主要来组织我的任务和着作,并且很好地让我在复杂的主题上澄清我的想法,但我不能轻易地与他人分享我的澄清,因为他们不使用Leo。我做了一个从Leo到Dynatree的小型出口脚本,只是作为一个测试而且效果很好,所以我认为是时候使用web2py + dynatree创建一个web outliner。问题是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的部分无效,无论文件是否存在且具有适当的权限。我在这里搜索过:

How to Load Dynatree via Ajax using MVC https://groups.google.com/forum/?fromgroups=#!msg/dynatree/kZqIO1zCTSU/HYTFe9O2docJ

和其他人在网上,但我无法找到如何从外部数据启用此加载。我甚至想过为YUI或ExtJS更改我的库。我现在使用jstree在web2py上支持树,但是,与dynatree,YUI或ExtJS相比,JsTree文档不是很新手友好。

任何指向解决方案的指针都将受到赞赏。

1 个答案:

答案 0 :(得分: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>