第一次Stack Overflow:-)。我一直使用Leo outline主要是为了组织我的任务和写作,它很好地让我在复杂的主题上理清思路,但我不能轻易地与别人分享我的思路,因为他们不使用Leo。我做了一个小的导出脚本从Leo到Dynatree只是作为一个测试,它工作得很好,所以我认为是时候创建一个web大纲,使用web2py + 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无法工作,无论该文件是否存在并且具有适当的权限。我在这里搜索过:
如何通过Ajax使用MVC加载动态树https://groups.google.com/forum/?fromgroups= !味精/dynatree/kZqIO1zCTSU/HYTFe9O2docJ
和web上的其他地方,但我找不到如何从外部数据启用此加载。我甚至想过把我的库换成YUI或ExtJS。我现在知道在web2py上使用jstree支持树,但是,与dynatree, YUI或ExtJS相比,jstree文档对新手来说不是很友好。
文件位于哪里?
最好将文件放在静态文件夹
下 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>