如何在 nicolaskruchten 中动态应用过滤器 pivottable.js

How to apply filters dynamically in nicolaskruchten pivottable.js

我正在使用 nicolaskruchten pivottable,用于显示我的数据:

$('#output').pivot([
    {country: "USA", city: "Boston"},
    {country: "USA", city: "NYC"},
    {country: "UK", city: "London"},
],
{
    rows: ["country"],
    cols: ["city"]
});

它显示 table 正确,但现在我想在 table 中动态过滤我的数据。

其中一种方法是过滤我的可用数据并使用过滤数据重绘数据透视表 table。 我想知道是否有可用的内置过滤器方法。

在 pivot(input [options]) 方法的选项数组中提供了一个过滤器对象,但找不到任何示例来实现。

如果有人可以建议我如何进一步进行?

您必须在每次过滤时重新渲染 table。您可以传递一个 filter 属性,它是一个将行作为参数和 returns 布尔值的函数。参见 https://github.com/nicolaskruchten/pivottable/wiki/Parameters#pivotinput-options

我应该补充一点,一般来说,您应该提交一个 Github 问题来获得有关此库的帮助,而不是在 Whosebug 上提问。

我使用 search/select 框来动态过滤数据。 过滤器的数据是从后端动态提供的。

在index.html中:

---------------- //搜索-select框1 -------------- //search-select 框 2 ...

==============//枢轴table

您实际上可以传递过滤器属性。但从内存的角度来看,这将是一个更好的实现。

通过实现要显示的默认记录集,您可以使用动态过滤器限制加载到前端的数据。

以下是我的做法。它解决了我的问题。

 var filterBy={filterCol:"country",filterValue:["USA"]};

    optObject['filter']=function(rowObj){ 
if(filterBy.filterValue.indexOf(rowObj[filterBy.filterCol])>‌​-1) return true; 
else return false; 
};