Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从列表中选择sencha触摸过滤器存储?_Javascript_Extjs_Filter_Sencha Touch_Store - Fatal编程技术网

Javascript 从列表中选择sencha触摸过滤器存储?

Javascript 从列表中选择sencha触摸过滤器存储?,javascript,extjs,filter,sencha-touch,store,Javascript,Extjs,Filter,Sencha Touch,Store,我正在尝试应用从本地存储商店获得的几个过滤器 我加载存储并可以应用一些过滤器: var newsStore = Ext.getStore("cityStore"); newsStore.filter(Ext.create('Ext.util.Filter', { filterFn: function(item) { return item.get('name') == 'city1' || item.get('name') == 'city2'; } })); 但是现在我有了

我正在尝试应用从本地存储商店获得的几个过滤器

我加载存储并可以应用一些过滤器:

var newsStore = Ext.getStore("cityStore");

newsStore.filter(Ext.create('Ext.util.Filter', {
  filterFn: function(item) {
    return item.get('name') == 'city1' || item.get('name') == 'city2';  
}
}));
但是现在我有了一个项目列表,希望遍历列表中的所有项目,并将它们应用到商店过滤器

问题是,我无法反复遍历循环并执行返回项。get('name')=='variable',因为这只会过滤最后一次返回,但我希望应用列表中的每个项,如上面所示

希望我能在这里找到一些帮助


谢谢

如果您有一个数组,其中包含用于筛选存储的名称,我们将此数组称为“名称”:

var names = ['Lucas', 'Pablo', 'Noelia'];
如果记录包含名称数组中列出的一些值,则必须在过滤器fn中执行的操作是返回true。神奇之处在于some功能

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'))})​
你也可以在这里工作:

我希望这是有用的。
祝你好运

我有一段时间没有做这个项目,但我又试了一次,它成功了!谢谢!