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