如何在子项引用父项数据的情况下执行d3嵌套数据连接?

时间:2013-03-31 07:41:35

标签: svg d3.js

首先,我创建一个选择并添加一些内容。为了便于阅读,我将其删除了:

arcData = [
    {data: [{label: "first"}], otherProp: value},
    {data: [{label: "second"}], otherProp: value}];

arcSelection = svg.selectAll("arc").data(arcData);

arcSelection.enter().append("g").append("path").attr("d", myArcDefinition);

我尝试使用来自父级的数据添加嵌套选择:

arcDataSelection = arcSelection.selectAll("text").data(function(singleArc, arcIndex) {
  return singleArc;
});
arcDataSelection.enter().append("text").text(function(d) {
  return d.data.label;
});

但是在DOM中没有创建text个对象。如何在嵌套选择中正确创建使用父级数据的元素?

我正在尝试按照此处显示的模式:http://bost.ocks.org/mike/nest/

1 个答案:

答案 0 :(得分:0)

要使用嵌套选择,您需要拥有嵌套数据。你传入的是一维数组(即没有嵌套)。再看看你链接到的例子 - 那里使用的数据是一个二维数组。