Это мой магазин MyStore.js
Ext.define('myProject.store.MyStore', {
config:{
storeId: 'MyStore',
autoLoad: false,
autoSync: false,
allowSingle: true,
clearOnPageLoad: true,
model: 'abc.model.MyStoreModel',
proxy: {
type: 'rest',
actionMethods: {create: 'POST', read: 'GET', update: 'POST', destroy: 'POST'},
url:'/services/rest/MyService/myService',
reader: {
type: 'json',
rootProperty:MyServiceView.elements.collection',
successProperty : 'success'
},
writer:
{
type: 'json',
root: 'MyServiceDataView',
nameProperty: 'mapping',
expandData : true
},
listeners: {
exception: function(proxy,response,operation){
}
}
}
}
});
Это моя модель
Ext.define( 'myProject.model.MyStoreModel', {
extend: 'Ext.data.Model',
config:{
idProperty: 'keyStr',
fields:[
{
name: 'keyStr',
type: 'string',
},
{
name: 'sId',
type: 'int'
},
{
name: 'dCode',
type: 'string'
},
{
name: 'sNumber',
type: 'int'
}
]
},
});
Внутри моего Controller.js у меня есть этот метод
syncMyStore: function()
{
var myStore = Ext.getStore('MyStore');
var record = this.getRescordForStore(); //assume it is happening
myStore.insert(0, record);
if(this.isSyncRequires(myStore)) //assume this is always true
{
myStore.sync();
}
},
Теперь после успешной синхронизации запись все еще грязная: true;Как сделать это ложным?
PS: Предположим, у меня есть 10 записей в моем магазине, а затем синхронизация вызывает 10 остальных вызовов.Я хочу сделать записи грязными, которые успешно синхронизированы.Я даже в порядке с удалением записей на основе одного успешного вызова.
Обратите внимание, что при синхронизации не происходит успешное выполнение, сбой и обратный вызов.
Как выполнить действие на основе состояния ответа при выполнении синхронизации в Ext.js