从ExtJS中的商店中删除过滤器

joe*_*moe 14 javascript extjs4

我明确地Ext.data.Store使用该store.filter(string, string)方法添加过滤器.

但是,我无法弄清楚如何从商店中删除过滤器.因此,即使在重新加载后,过滤器也始终适用store.load().我看到的唯一解决方法是重新启动整个Web应用程序.

如何从中删除过滤器Ext.data.Store

Mol*_*Man 33

除了Mchi的答案之外,我想说可以删除特定的过滤器(clearFilter()将它们全部删除).
要做到这一点,而不是使用store.filter('property_to_filter','value')方法,使用:

store.filters.add('filtersId', new Ext.util.Filter({
  property: 'property_to_filter',
  value: 'value'
}));
store.load();
Run Code Online (Sandbox Code Playgroud)

删除过滤器使用:

store.filters.removeAtKey('filtersId');
Run Code Online (Sandbox Code Playgroud)

更新(适用于> 4.2.0)

在4.2.0中添加了添加/删除特定过滤器的方法:

store.addFilter({
    id: 'filtersId',
    property: 'property_to_filter',
    value: 'value'
});

store.removeFilter('filtersId');
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看文档:Ext.data.Store.addFilter,Ext.data.Store.removeFilter