我一直在努力解决这个问题。 我是 Javascript 的新手,所以有些事我还是不明白。 我创建了函数 linkBuilder 来从JSON文件中提取一些数据。我测试了 parseLine 并且它有效。
links=[];
let linkBuilder = function(){
d3.text('prova2utenti.json',function(err,data){
if (err) throw err;
var elements = data.split('\n');
for (var i=0, l=elements.length; i<l; i++){
links.concat(parseLine(elements[i]));
console.log(links);
}
});
}
问题 是当我尝试使用此代码为我的图表创建链接时:
links.forEach(function(link) {
link.source = nodes[link.source] || (nodes[link.source] = {name: link.source});
link.target = nodes[link.target] || (nodes[link.target] = {name: link.target});
});
我的网页上没有显示任何内容,就像var links 从未初始化一样。我想这是因为吊装,但我不确定,反正我不知道如何解决。 任何帮助都非常感谢。
答案 0 :(得分:0)
好的,我能够解决这个问题。就像@GerardoFurtado建议的那样,我把所有的逻辑都放在了专用函数中绘制图形。然后只需在d3.text
内调用该函数即可完成工作。
我使用concat()
函数另一个问题。它每次调用时都会创建一个 new array ,而不是添加到同一个数组。我使用push()
方法解决了问题。