0

我有一个带有以下代码的商店。我的商店中有 7 条记录,其中前 3 条记录的状态为 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'
    }
  }
});
4

2 回答 2

2

您必须调用remove()store 的方法,传递要删除的记录。因此,调用该each()方法来遍历存储,检查status记录的 并删除它,如果它等于 2:

Ext.getStore('MyStore').each(function(record) {
    if (record.get('status') === 2) {
        Ext.getStore('MyStore').remove(record);
    }
}, this);
于 2013-09-12T20:51:24.320 回答
0

这样你只调用一次 remove :

var store = Ext.getStore('MyStore');
var records2del = [];
store.each(function(record) {
    if (record.data.status == 2) {
        records2del.push(record);
    }
}, this);
store.remove(records2del);
于 2013-10-10T14:55:49.937 回答