d3.js中的Golbal变量类型错误怎么解决?

时间:2015-07-10 12:59:37

标签: d3.js

Json数据:

[{"specialty":"Anesthesiology","median":276000 },
{"specialty":"Cardiology: Electrophysiology","median":359622 },
{"specialty":"Cardiology: Inv-Intvl","median":400000 },
{"specialty":"Cardiology: Noninvasive","median":256250 },
{"specialty":"Dermatology","median":358750 }]

Type1:此代码有效。

d3.json("income.json", function(d){
   d3.select("body").selectAll("p").data(d).enter().append("p").text("123");
});

Type2:但这段代码不起作用。错误信息是" 未捕获的TypeError:无法读取属性'长度'未定义的"

var mydata;
d3.json("income.json", function(d){mydata = d;});
d3.select("body").selectAll("p").data(mydata).enter().append("p").text("123");

1 个答案:

答案 0 :(得分:1)

这是因为以下调用是异步运行的,并且在您尝试使用它时未完成解析数据。因此你的变量'mydata'是未定义的。

d3.json("income.json", function(d){mydata = d;});

你应该使用'Type 1',因为它将赋值放入d3.json函数的回调中,并在数据可用后填充它

希望这有帮助。