【发布时间】:2015-07-01 18:30:04
【问题描述】:
使用这个例子作为开始,我在 d3 树数据结构上取得了巨大的成功:
http://bl.ocks.org/robschmuecker/7880033
但是,有一个简单的任务我似乎找不到任何答案:向现有数据树添加一个节点。我不想改变数据来自的原始文件,我也不想改变 svg 输出。我只是希望能够在从外部文件渲染后直接将节点添加到数据树中
【问题讨论】:
标签: javascript svg d3.js
使用这个例子作为开始,我在 d3 树数据结构上取得了巨大的成功:
http://bl.ocks.org/robschmuecker/7880033
但是,有一个简单的任务我似乎找不到任何答案:向现有数据树添加一个节点。我不想改变数据来自的原始文件,我也不想改变 svg 输出。我只是希望能够在从外部文件渲染后直接将节点添加到数据树中
【问题讨论】:
标签: javascript svg d3.js
很简单,使用这段代码动态创建一个新节点。这里selected 是具有当前选择的节点。它将是新节点的父节点
const newNodeObj = {
id: id,
name: [],
attributes: [],
children: []
};
newNodeObj.name = '';
newNodeObj.id = id;
const newNode = d3.hierarchy(newNodeObj);
newNode.depth = selected.depth + 1;
newNode.height = selected.height - 1;
newNode.parent = selected;
newNode.id = id;
if (!selected.children) {
selected.children = [];
selected.data.children = [];
}
selected.children.push(newNode);
selected.data.children.push(newNode.data);
updateChart(this.selected);
【讨论】: