D3:使用AJAX的层次结构子访问器功能

时间:2015-03-16 18:15:04

标签: javascript ajax json rest d3.js

我希望代表一个完整的项目层次结构,可以通过RESTful API访问。

为此,我想利用D3的树形布局来加载和绘制节点。此API可以返回给定类型的所有元素。但是,这些元素的子元素是通过引用URL访问的,而不是嵌套数组。

在D3中设置我的树时,我试图设置一个子访问器函数,它使用d3.json()返回给定节点的所有子节点。到目前为止,这是我的树构建器函数,其中root是具有Children属性的顶级项:

function buildTreeFor(root) {
    var tree = d3.layout.tree();
    tree.children(function(node) {
        d3.json(node.Children._ref, function(data) {
            return data;
        });
    });
    var nodes = tree.nodes(root);
    var links = tree.links(nodes);
}

正如人们所料,这些链接是空的,节点不会引用已发现的子节点。在阅读了D3文档和一些教程之后,我在这里找不到一个模式。我可以在Promise中返回子数据,但它会在哪里解决?在幕后的节点解析过程中某处?

我需要确保此层次结构的所有级别都在最终图表中表示。我该怎么做才能等待这些AJAX调用的解决?

谢谢!

0 个答案:

没有答案