这是我的商店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 deferred = Q.defer();
var successfulSync= 'false';
var me = this;
var myStore = Ext.getStore('MyStore');
if(this.isSyncRequires(myStore)) //assume this is always true
{
myStore.sync({
success: function () {
successfulSync = 'true';
deferred.fulfill();
}
});
}
else
{
deferred.fulfill();
}
return successfulSync;
},
要求1:我不想使用成功属性,而是要根据状态代码执行一些操作。 也就是说,如果状态码为200,则认为它成功。
要求2:在每个休息呼叫之后,我要根据该特定记录的响应状态(200)删除肮脏的记录/标记为false。
意味着,假设对于记录1和记录2如果状态码为200,那么我只想对记录1和记录2删除/标记dirty = false。
如果您能帮助我,我将非常感谢您。
答案 0 :(得分:0)
假设record0,record1,record3 ..具有某些唯一的标识方式。对每个记录进行ajax调用(REST api调用),如果响应为200,则控件将命中“成功”功能。然后,如果响应中包含用于标识记录的数据,则选择该记录并将其脏标志更改为false。在故障功能中执行相同的操作,并将脏标志更改为true。 您需要完成两件事才能得到更好的答案
- 您是否会将记录用作其余api调用的有效负载?
- 响应将具有指示记录,即我将拥有与 记录吗?