作为了解d3如何运作的练习,我已经从头开始构建这些内容,并通过我发现的各种示例拼凑而成。
我似乎无法解决的问题是,数据刷新后无法再拖动节点甚至移动节点。线条刷新,而不是节点。如果在再次提交表单之前拖动一些节点,效果会更明显。
下面的示例演示了这个问题,我已经注释掉了我在本地使用的WebSocket代码并替换为一些静态数据
您需要全屏查看:
http://bl.ocks.org/d4rr3ll/68713a42d59f5bb086ad25d5a0bcbad1
任何帮助表示赞赏
编辑添加:
所以我现在的临时解决方案是在更新之前删除SVG中的所有节点,但这并不理想。
function update_graph(data) {
svg.selectAll(".node").remove();
...
答案 0 :(得分:2)
合并更新后,您不会将合并的结果分配回您的节点和链接。
link = link.merge(line)
node = node.merge(circle)