extjs - 从 ExtJS 存储中删除数组中存在的记录

标签 extjs extjs4.2

我有一个商店和一个数组。如果该记录的值与数组中的值匹配,我想从存储中删除记录。以下是我正在尝试的代码,但它不起作用。任何人都可以建议正确的方法吗?

'store' 是实际的商店,'filterItems' 是我想从 'store' 中删除的记录数组。

    store.each(function (record) {
        for (var i = 0; i < filterItems.length; i++) {
            if (record.get('ItemId') === _filterItems[i].get('ItemId')) {
                itemIndex = store.data.indexOf(record);
                store.removeAt(itemIndex );
            }
        }
    });

最佳答案

不确定您的代码,因为我不知道所有变量。尽管建议使用 store.getRange() fn 并通过 for 循环迭代数组。它的性能更好。

var storeItems = store.getRange(),
    i = 0;

for(; i<storeItems.length; i++){     
   if(Ext.Array.contains(filterItemIds, storeItems[i].get('id')))
      store.remove(store.getById(storeItems[i].get('id')));            
} 

这是我现在尝试的一个例子,它运行良好。

https://fiddle.sencha.com/#fiddle/8r2

关于extjs - 从 ExtJS 存储中删除数组中存在的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25284241/

相关文章:

javascript - handleClick() 不是 Sencha CMD 和 Extjs 5.1 的函数

javascript - 边框布局代码中断,无法看到内容

javascript - ExtJS MVC 表单引用

javascript - 覆盖 Extjs 时间字段以显示自定义最大值 23 :59

javascript - 用于开发拖放 Web 应用程序的最佳 javascript 库

javascript - 保存后Extjs rowediting更改时间格式

EXTJS 6.7 - 销毁时未清除类属性

javascript - Ext.getStore() 快捷方式?

javascript - 两条语句执行之间所需的延迟

Extjs批量加载多个店铺