想象一下,您有一个数组,其中包含您必须用于过滤商店的名称,我们将此数组称为“名称”:
var names = ['Lucas', 'Pablo', 'Noelia'];
如果记录包含您的名称数组中列出的一些值,您在 filterFn 中必须做的是返回 true。神奇之处在于某些功能。
store.filter(Ext.create('Ext.util.Filter', {
filterFn: function(item) {
return names.some(function(name){ return name === item.get('name')});
}
}));
例如,以下商店将仅包含 2 行(应用过滤器后):Lucas 和 Pablo:
var names = ['Lucas', 'Pablo', 'Noelia'];
var store = Ext.create('Ext.data.ArrayStore', {
fields: ['id', 'name'],
data: [
[ 1, 'Lucas' ],
[ 2, 'Pablo' ],
[ 3, 'Francisco' ]
]
});
store.filter(Ext.create('Ext.util.Filter', {
filterFn: function(item) {
return names.some(function(name){ return name === item.get('name')});
}
}));
// display the filtered record in the console
store.each(function(record){ console.log(record.get('name'))})
你也可以在这里工作:http: //jsfiddle.net/lontivero/5TWq9/3/
我希望这很有用。祝你好运!