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()削除するレコードを渡す必要があります。したがって、each()メソッドを呼び出してストアを反復処理し、レコードの をチェックして、status2 に等しい場合は削除します。

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 を 1 回だけ呼び出します。

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 に答える