我有以下对象:
var dataInfo = d3.select("#" + chartRenderDiv)
.select(".labelLayer")
.selectAll(".labelNode")
.data(labelsData, function(d){return d.id;});
之后,我根据它来对应它来创建SVG元素:
var labelContainer = dataInfo.enter()
.append("g")
.attr("class", "labelNode")
.attr("cursor","pointer")
.call(dragInteractive);
最后我放开了变量:
labels.exit().remove();
代码完全正常,但是当我重新绘制时,label
不断从更新的数据源获取更新,labelContainer
将是一个null元素数组。
这个null返回值的原因是什么以及它应该如何完成以便它总是获取更新并且不返回空数组?
UPDATE :LabelsData是一个大小为183的对象数组。以下是数组中一个条目的示例:
id: "AF"
labelPos: Array[2]
labelPosition: "top-right"
name: "Afghanistan"
neighbourhood: Object
size: 33397058
x: 1349.696941
y: 60.524
它经常更新并根据其更改,它应该实际更改SVG元素。