2015-07-10 45 views
0

JSON数据:d3.js中的Golbal变量类型错误如何解决它?

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

类型1:此代码的工作。

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

Type2:但此代码不起作用。该错误信息是“遗漏的类型错误:无法读取的不确定财产‘长度’”

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

不好意思。我无法通过明确的关键词找到前一个问题,因为我不知道代码为什么不起作用。我只知道这个答案中的关键词“同步”。 –

回答

1

这是因为下面的调用是异步运行的,而不是做你所要使用的时间分析数据它。因此你的变量'mydata'是未定义的。

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

,因为它的分配放置到d3.json功能的回调并填充数据一旦有货,

希望这有助于你应该用“1型”。