我正在尝试将一个.csv文件加载到交叉过滤器中,以便与dc.js和d3一起使用。但是,如果ndx = crossfilter(data_)
不在d3.csv(...
中,则无法工作。是否可以使用d3在全局/外部变量(在本例中为ndx
)中加载数据?
var ndx;
private method(){
var data_;
d3.csv("samples.csv", function(data){
var format = d3.timeParse("%m-%y");
data.forEach(function(d: any) {
d.date = format(d.date);
});
data_ = d3.csvParse(data);
});
ndx = crossfilter(data_);
}
如何将其加载到交叉过滤器中?我是否有义务在d3.csv(..
调用中使用交叉过滤器?
解决方案:--我做了.csv --变成了一个.json,并且我“同步”加载了它。观察下面。
var ndx;
private method(){
var data_ = (function() {
var json: any = null;
$.ajax({
'async': false,
'global': false,
'url': "samples.json",
'dataType': "json",
'success': function (data:any) {
json = data;
}
});
return json;
})();
ndx = crossfilter(data_);
}
观察:
‘异步’:假
发布于 2017-05-26 04:26:41
这是因为回调函数在返回数据后被执行为asynchronously,。这意味着,如果将图表代码放在回调之外,将得到您定义的空数组,因为尚未返回任何数据。
https://stackoverflow.com/questions/44200020
复制相似问题