我有一个包含以下代码的商店。我的商店里有7条记录,其中前三条记录的状态为2,其他记录的状态为3.我想删除状态为2的记录。我该怎么办
Ext.define('MyApp.store.MyStore', {
extend: 'Ext.data.Store',
config: {
data: [
[
1,
'Siesta by the Ocean',
'1 Ocean Front, Happy Island',
1
],
[
2,
'Gulfwind',
'25 Ocean Front, Happy Island',
1
],
[
3,
'South Pole View',
'1 Southernmost Point, Antarctica',
1
],
[
4,
'ABC',
'11 Address1',
2
],
[
5,
'DEF',
'12 Address2',
2
],
[
6,
'GHI',
'13 Address3',
2
],
[
7,
'JKL',
'14 Address4',
2
]
],
storeId: 'MyStore',
fields: [
{
name: 'id',
type: 'int'
},
{
name: 'name',
type: 'string'
},
{
name: 'address',
type: 'string'
},
{
name: 'status',
type: 'int'
}
],
proxy: {
type: 'localstorage'
}
}
});
答案 0 :(得分:2)
您必须调用商店的remove()
方法,传递要删除的记录。因此,调用each()
方法遍历商店,检查记录的status
并删除它,如果它等于2:
Ext.getStore('MyStore').each(function(record) {
if (record.get('status') === 2) {
Ext.getStore('MyStore').remove(record);
}
}, this);
答案 1 :(得分:0)
这样你只需要调用一次删除:
var store = Ext.getStore('MyStore');
var records2del = [];
store.each(function(record) {
if (record.data.status == 2) {
records2del.push(record);
}
}, this);
store.remove(records2del);