【发布时间】:2014-05-05 17:59:43
【问题描述】:
我在尝试将数组组合到现有的 svg 地图上进行数据绑定时遇到了很多麻烦。
该数组包含具有name 属性的对象,该属性对应于d3 选择中svg 元素的id 属性。
我正在像这样进行数据连接:
mySelection.data(
[
{"name": "county1"},
{"name": "county2"},
{"name": "county3"}
],
function (datum, index) {
if (this.getAttribute("id") === datum["name"]) {
return datum;
});
但是,当我运行它时,我收到错误 Uncaught TypeError: Cannot read property 'name' of undefined。
我尝试使用调试器单步执行代码,在我看来问题是当 d3 调用我的键函数时,datum 参数为空。所以我只能假设它不喜欢数据数组的格式。
我已尝试阅读有关数据函数 here 的文档,但遗憾的是,除了它应该是“数据数组”之外,该函数期望其第一个参数的格式不是很清楚。
你能帮我弄清楚为什么我的数据绑定不起作用吗?
这是一个使用我的实际数据的 jsFiddle:http://jsfiddle.net/Racheet/GG3d5/
【问题讨论】:
标签: javascript data-binding d3.js