3

さて、私はストアサーバー側を持っているので、すべてをリモートで行っているとしましょう。店舗例:

   Ext.create('Ext.data.Store', {
        model: 'MyApp.model.ContactModel',
        remoteFilter: true, 
        remoteSort: true,
        autoLoad: true,
        autoSync: true,
        storeId: 'ContactStore-1'
    });
   Ext.create('Ext.data.Store', {
        model: 'MyApp.model.ContactModel',
        remoteFilter: true, 
        remoteSort: true,
        autoLoad: true,
        autoSync: true,
        storeId: 'ContactStore-2'
    });

次のことをすると問題が発生しました。

Ext.getStore('ContactStore-1').insert(0,{'name':'say'});
Ext.getStore('ContactStore-2').insert(0,{'name':'hi'});

何が起こるかというと、DB を見ると 2 つのエントリがあることになります。私は 'hi' を 1 回と 'say' を 2 回受け取ります。それを見ると、最初の挿入ステートメントが送信され、次に2番目の挿入ステートメントが送信されますが、両方の挿入からのデータが送信されます(同じモデルを共有しているため、同じプロキシを共有しているためだと思います)

挿入リクエストを自動マージしないようにこれを解決する方法について考えてみませんか?

あなたの視聴の喜びのためのモデル:

Ext.define('MyApp.model.ContactModel', {
extend: 'Ext.data.Model',

idProperty: 'idContact',

fields: [
    {
        name: 'idContact',
        type: 'int'
    },
    {
        name: 'name',
        type: 'string'
    }
],

proxy: {
    type: 'direct',
    api: {
        create: contact.createRecord,
        read: contact.getResults,
        update: contact.updateRecords,
        destroy: contact.destroyRecord
},
    reader: {
        type: 'json',
        root: 'data'
    }
}
});
4

1 に答える 1