さて、私はストアサーバー側を持っているので、すべてをリモートで行っているとしましょう。店舗例:
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'
}
}
});