是否可以在特定维度上应用过滤器?我需要通过点击按钮获取在一组dc.js图表上应用的所有过滤器。
答案 0 :(得分:10)
我做了类似的事情。 但是,不是使用按钮单击,而是每次通过附加renderlet过滤图表时获取值。
您要查找的功能是 filters()
即
yourChart.renderlet(function(chart) {
dc.events.trigger(function() {
console.log(yourChart.filters())
});
})
这将记录应用于给予图表的维度的过滤器。
答案 1 :(得分:0)
您可以使用chart.filterPrinter()函数获取所选过滤器的值,该函数返回一个函数,该函数返回所选过滤器的字符串版本。以下代码段将返回图表当前所选过滤器的字符串版本。
chart.filterPrinter()(chart.filters())
您甚至可以提供自己的filterPrinter函数进行自定义。
你可以定义on('过滤''函数,每当过滤器值在图表上发生变化时触发。此函数接收图表作为第一个参数,当前过滤器选择/取消选择作为第二个参数。但是,您可以使用chart.filters()函数获取当前所选过滤器的完整列表。
myChart.on('filtered', function(chart, filter) {
var sel = chart.filterPrinter()(chart.filters());
console.log('Selected Filters are: ' + sel);
});