2

我在 Django + django-mptt 中使用 jstree 完成了一个类似于 win-explorer-tree 的界面:

{% load mptt_tags %}
var nodedata = {
    "data": {
    {% recursetree nodes %}
    "data": "{{ node.nodename }}",   
    "id": "{{ node.id }}", 
    "state":"open",
    "children": [{ {{ children }} }],
    {% endrecursetree %}
    }
};

当每个节点只有一个孩子时,它工作正常。但是当用户创建多个子节点时,它会在 jstree 中展开,如下所示:

var nodedata = {
    "data": {

    "data": "following1",   
    "id": "1", 
    "state":"open",
    "children": [{ 
    "data": "level3",   
    "id": "4", 
    "state":"open",
    "children": [{ 
    "data": "level 4",   
    "id": "5", 
    "state":"open",
    "children": [{ 
    "data": "New node",   
    "id": "6", 
    "state":"open",
    "children": [{ 
    "data": "New node 2",   
    "id": "7", 
    "state":"open",
    "children": [{  }],
     }],

    "data": "kkk",   
    "id": "8", 
    "state":"open",
    "children": [{  }],
     }],
     }],
     }],

    }
};

“kkk”节点显示,但“新节点”和“新节点 2”未显示。

我正在寻求一些建议,还是代表这棵树的更好方法?

4

1 回答 1

1

我认为您的 json 变量中有错误。你有:

"children": [{
    "data": "New node",
    "id": "6",
    "state":"open",
    "children": [{
        "data": "New node 2",
        "id": "7",
        "state":"open",
        "children": [{  }],
    }],
    "data": "kkk",
    "id": "8",
    "state":"open",
    "children": [{  }],
}],

“children”数组中的每个节点必须在单独的 {} 中,用逗号分隔。

于 2011-11-09T08:17:14.750 回答