"超出堆栈空间"通过AJAX调用

时间:2016-04-05 08:37:57

标签: javascript jstree

我必须使用来自DB的数据通过ajax调用填充我的jsTree。示例数据类似于以下数据。如果仔细观察,第二个节点(Node2)是第一个节点(Node1)的子节点,第三个节点是第二个节点的子节点,但第三个节点的id是 Node2 。这是创造问题,而不是显示一个树,它显示我... loading ... sign。

 $('#tree').jstree({
        'core' : {
            'data' : [                  
                { "id" : "Node1", "parent" : "#", "text" : "Root node" },
                { "id" : "Node2", "parent" : "Node1", "text" : "Child 1" },
                { "id" : "Node2", "parent" : "Node2", "text" : "Child 2" },
            ]
        }
    });

我的jsfiddle请点击。

它只是一个样本数据。实际数据包含ID部分中的数字,我进一步使用该ID来获取该节点的选择事件的更多数据。

2 个答案:

答案 0 :(得分:0)

您的JS代码中有一个拼写错误:两个节点共享相同的id

$('#tree').jstree({
    'core' : {
        'data' : [                  
            { "id" : "Node1", "parent" : "#", "text" : "Root node" },
            { "id" : "Node2", "parent" : "Node1", "text" : "Child 1" },
            { "id" : "Node3", "parent" : "Node2", "text" : "Child 2" },
        ]
    }
});

这是一个包含工作代码的Codepen:http://codepen.io/adrenalinedj/pen/VarWrp

答案 1 :(得分:0)

正如我所说,我通过一个AJAX调用填充树,该调用从我的Spring控制器中以JSON格式提供数据。因此,在准备JSON对象时,我正在以这样的方式创建对象,这将使我的树id在其循环中的各自父ID也是唯一的。

因公司政策限制而未在此处发布示例代码的道歉。