【问题标题】:D3js collapsible tree throwing bad requestD3js可折叠树抛出错误请求
【发布时间】:2016-09-14 08:38:40
【问题描述】:

我正在使用 d3js 可折叠树形网格来显示节点,当我在 plunker 中运行代码时,我收到了一个奇怪的 400 bad request 错误。

我已经替换了获取 json 的代码并直接对 json 进行硬编码,如下所示:

var treeData ={"user_id":0,"name":"Root Node","children":[{"user_id":0,"name":"Flossie Hickman","children":[....]}]};

    // Calculate total nodes, max label length
    var totalNodes = 0;
    var maxLabelLength = 0;
    // variables for drag/drop
    var selectedNode = null;
    var draggingNode = null;
    // panning variables
    var panSpeed = 200;
    var panBoundary = 20; // Within 20px from edges will pan when dragging.
    // Misc. variables
    var i = 0;
    var duration = 750;
    var root;

Link to Plunker

请告诉我哪里出错了。

【问题讨论】:

  • 你链接的 plunker 就像魅力一样。另外,它在哪里包含您在上面提供的行?你的实际问题是什么?
  • @elias plunker 给出错误请求错误。请检查此链接 - plnkr.co/edit/pmD1LILsNHaaEI4dADlo?p=preview 我提到的代码存在于 dndTree.js 脚本文件中。
  • 您确定要链接您正在谈论的项目吗?我没有收到错误的请求错误,我没有看到 dndTree.js 文件,并且一切都很好地显示,对我来说没有任何问题。
  • @elias 我现在已经冻结了 plunker 供您查看。您现在可以检查一下吗 - plnkr.co/edit/pmD1LILsNHaaEI4dADlo?p=preview。在控制台上我可以看到TypeError: root is undefined

标签: javascript jquery d3.js


【解决方案1】:

您的代码在控制台中没有显示任何错误,这里有一张图片来证明:

不过,什么都不会出现。原因很简单:您正在调用您的脚本...

<script src="dndTree.js"></script>

...在 &lt;body&gt; 之前,你有这个 div:

<div id="tree-container"></div>

哪个是用于创建 svg 的 div:

var baseSvg = d3.select("#tree-container").append("svg")

所以,这是正确的顺序:

<body>
    <div id="tree-container"></div>
    <script src="dndTree.js"></script>
</body>

作为一种好的做法,请在正文底部引用您的脚本。

这里是工作的 plunker(我强调“工作”):http://plnkr.co/edit/2aLPBuEXN9f6Tlwekdg5?p=preview

【讨论】:

  • 您共享的插件正在工作。你能帮我理解负责节点之间线的长度和弧度的参数吗?我需要更多的曲线和更少的长度。我对 D3.js 完全陌生
  • 由于这是一个不同的问题,请提出另一个问题,解释问题和期望的结果。
  • 请找到新问题的链接 - stackoverflow.com/questions/39492177/…
猜你喜欢
  • 1970-01-01
  • 2018-04-02
  • 2013-11-22
  • 1970-01-01
  • 1970-01-01
  • 2019-12-02
  • 2021-12-16
  • 2019-03-02
  • 1970-01-01
相关资源
最近更新 更多