是否可以在dc图表上一次添加一组过滤器?例如,假设我有一个pieChart和一组要应用的过滤器值。dc.js一次添加多个过滤器
var osChart = dc.pieChart('#oschart');
并设置过滤器的输入,说
var filters = ["linux", "mac osx", "windows", "solaris"]
如何申请过滤器,以便仅生成一个“过滤”事件? 我可以这样做
for (var i=0; i < filters.length; i++) {
osChart.filter(filters[i]);
}
然而,将产生4 filtered
事件。 我正在应用基于用户在文本框中键入的内容的过滤器。当应用过滤器时,我正在进行一些Ajax调用,如果逐个应用过滤器,这往往会变慢。如果过滤器可以一次设置,我可以避免额外的Ajax调用。
crossfilter有一个功能filterFunction
它可以完成这项任务,但我不知道如何将它应用于直流图表。在osChart.dimension()
上应用filterFunction
不起作用。在最新的dc版本中,我看到一些函数,如addFilterHandler
和removeFilterHandler
,但是我现在无法测试和部署该版本。
我还有其他选择吗?
啊,所以它需要是阵列中的数组,例如.replaceFilter([[“linux”,“mac osx”,“windows”,“solaris”]]) – marcin 2015-05-14 12:51:30
真的@marcin?这是令人惊讶的。你在使用哪张图表? – Gordon 2015-05-14 13:13:47
pieChart。这个答案中的第一行代码('if(_ instanceof Array &&'[0] instanceof Array &&')检查数组的第一个元素是否是数组。 – marcin 2015-05-14 13:28:24