fancytree文件夹永远不会崩溃

时间:2016-06-11 07:01:57

标签: fancytree

fancytree文件夹永远不会崩溃。显示所有儿童和父母没有正确的嵌套结构。

当我复制与文本数据源有效的完全相同的数据时,而不是web2py(python)控制器,文件夹不会折叠,只是显示永久展开。浏览器中没有js控制台错误。

在文本文件中完美运行的原始数据

FancyTree像这样从python控制器中复制数据

json_list = [{
  "alexLink": "http://example.com/",
  "kind": "tasks#task",
  "id": "MTYwNzEzNjc2OTEyMDI1MzcwNzM6ODUwNjk4NTgzOjExMTkyODk2MjA",
  "etag": "\"4qyCALf1j510T_-I20NAMbUHF2k/LTEzNTgzMTMzODg\"",
  "title": "Task 01",
  "updated": "2015-04-23T19:25:44.000Z",
  "selfLink": "",
  "position": "00000000002147483647",
  "status": "needsAction"
}]

我转换为json:json_list = json.dumps(json_list)

然后用作来源:

// Initialize Fancytree
$("#alexTree").fancytree({
    checkbox: true,
    selectMode: 3,
    source: {{=XML(json_list)}},
    postProcess: function(event, data){
        data.result = convertData(data.response);
    },
    select: function(event, data) {
        window.open(data.node.data.alexLink, "_blank");

数据与文本文件源中的相同。什么可能导致文件夹不与其下的孩子签订合同?

1 个答案:

答案 0 :(得分:0)

我看不出一个明显的原因,为什么你的样本不起作用(我假设持久性扩展已关闭?)。 除了{{=XML(json_list)}}之外,可能会发生意外情况。 我想需要一个可调试的演示来查找。

无论如何,你的样本是这样做的:

  1. 以原生(非Fancytree)格式生成树数据
  2. 生成一个带有嵌入式<script>标记的html页面,该标记又将此数据嵌入为字符串
  3. 在页面加载时,树是使用本机数据创建的,后期处理是在客户端
  4. 完成的

    Fancytree的设计考虑了这种模式(其中包括):

    1. 拥有一个空<div id="tree">元素的静态页面并包含一些JavaScript
    2. 在页面加载时初始化树并传递source的ajax网址  这将立即显示您的用户的页面,同时延迟加载(显示旋转图标)
    3. 数据一到,树就会更新  (您也可以考虑进行转换服务器端并发送有效的Fancytree兼容数据。)
    4. 这可能会提供更流畅的用户体验。它还允许通过调用tree.reload()来刷新树数据而无需重新加载页面。