dc.js 图表的 .on 函数显示错误
.on function for dc.js charts showing error
我卡在了一点
dcCharts = d3.selectAll("div.mychart")
.attr("class", "yourchart")
.each(function (d, i) {
return d ;
});
我检索 div 并执行此操作:
`
_.each(dcCharts, function (dcChart) {
dcChart.on("filtered", function (chart, filter) {
map.eachLayer(function (layer) {
map.removeLayer(layer)
});
drawMap();
});
dc.renderAll();
});
我收到这个错误:
Uncaught TypeError: dcChart.on is not a function
at updateFile:229
at Function.m.each.m.forEach (underscore-min.js:5)
at updateFile:228
at Object.<anonymous> (d3.v3.js:1996)
at Object.event (d3.v3.js:504)
at XMLHttpRequest.respond (d3.v3.js:1949)
对于未来的读者,这是一个 follow-up 到 的部分,它提供了一些背景信息。
这里的问题是每个 div
的绑定数据是字符串列名,而不是图表。如果要生成图表数组,我建议在初始化图表时构建数组。 (从我对上一个问题的编辑答案中复制)
var dcCharts = new Array(cols.length);
divs.each(function(col, i) {
var dimension = cf.dimension(function(d) { return d[col]; });
var group = dimension.group(); // or however you want to bin them
var bar = dc.barChart(this) // pass div element as parent/root instead of using selector
.dimension(dimension)
.group(group)
// ...
dcCharts[i] = bar;
});
现在您的 _.each(dcCharts, ...
应该可以工作了。
我卡在了一点
dcCharts = d3.selectAll("div.mychart")
.attr("class", "yourchart")
.each(function (d, i) {
return d ;
});
我检索 div 并执行此操作: `
_.each(dcCharts, function (dcChart) {
dcChart.on("filtered", function (chart, filter) {
map.eachLayer(function (layer) {
map.removeLayer(layer)
});
drawMap();
});
dc.renderAll();
});
我收到这个错误:
Uncaught TypeError: dcChart.on is not a function
at updateFile:229
at Function.m.each.m.forEach (underscore-min.js:5)
at updateFile:228
at Object.<anonymous> (d3.v3.js:1996)
at Object.event (d3.v3.js:504)
at XMLHttpRequest.respond (d3.v3.js:1949)
对于未来的读者,这是一个 follow-up 到
这里的问题是每个 div
的绑定数据是字符串列名,而不是图表。如果要生成图表数组,我建议在初始化图表时构建数组。 (从我对上一个问题的编辑答案中复制)
var dcCharts = new Array(cols.length);
divs.each(function(col, i) {
var dimension = cf.dimension(function(d) { return d[col]; });
var group = dimension.group(); // or however you want to bin them
var bar = dc.barChart(this) // pass div element as parent/root instead of using selector
.dimension(dimension)
.group(group)
// ...
dcCharts[i] = bar;
});
现在您的 _.each(dcCharts, ...
应该可以工作了。