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文档不是很新手友好。
任何指向解决方案的指针都将受到赞赏。
答案 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>