使用crossfilter,是否可以在实例化后销毁/删除它?

时间:2012-05-14 10:34:33

标签: javascript crossfilter

我指的是javascript的方形crossfilter插件

https://github.com/square/crossfilter

在我的应用中,用户可以选择特定的日期范围,每次更改日期时,ajax请求都会创建一个json对象,该对象被送入crossfilter。

我希望能够删除现有的crossfilter(屏幕上的对象以及事件),并使用新创建的json对象启动新的。

3 个答案:

答案 0 :(得分:3)

根据文档,您应该可以通过应用

来撤消过滤器
.filter(null)

.filterAll()

到您的对象。

但是,我发现这不一定有效,所以最好的做法是将新的过滤器应用于新的crossfilter对象。

如果您可以为更好的上下文提供一些有用的代码。

答案 1 :(得分:1)

您需要重置从crossfilter派生的所有维度上的过滤器以重置它。 例如,如果您已应用以下过滤器

payments_by_quantity.filter([1, Infinity]);
payments_by_total.filter(90);
payments_by_tip.filter(0);
payments_by_type.filter("tab");

您需要重置每一个以恢复到原始状态:

payments_by_quantity.filter(null);
payments_by_total.filter(null);
payments_by_tip.filter(null);
payments_by_type.filter(null);

这是有道理的,因为它允许您有选择地激活/停用已定义尺寸的滤镜。

答案 2 :(得分:0)

if(crossFilter.size() > 0) {
     // Need to apply filter to all first
     dc.filterAll(); 
     // Then call remove
     crossFilter.remove();
 }