您好我的应用程序遇到了一个奇怪的行为:当我修改一个项目然后我的代理做了一个put请求时,第一次就可以了,第二次发送两个请求:第一次带有前一个数据一,第二个带有实际数据,第三次发送三个请求,在我的系统上这不是一个大问题,因为最后我在我的数据库上得到正确的值,但在我的客户系统上结果并不总是正确。然后我想删除这种行为。
这是我的商店:
Ext.create('Ext.data.Store',
{
storeId: 'bbCompaniesStore',
model:'Company',
pageSize: pageSize,
proxy:
{
idProperty : '_id',
type: 'rest',
url: 'data/companies/',
autoload: true,
noCache: true,
sortParam: undefined,
actionMethods:
{
create : 'PUT',
read : 'GET',
update : 'POST',
destroy: 'DELETE'
},
reader:
{
type: 'json',
root: 'data',
totalProperty: 'total'
},
},// proxy
listeners: {
exception: function(proxy, response, operation) {
Ext.gritter.add({
title: MongoVision.text['action.' + operation.action] || operation.action,
text: (operation.error ? operation.error.statusText : null) || MongoVision.text.exception
});
// Ext JS 4.0 does not handle this exception!
switch (operation.action) {
case 'create':
Ext.each(operation.records, function(record) {
record.store.remove(record);
});
break;
case 'destroy':
Ext.each(operation.records, function(record) {
if (record.removeStore) {
record.removeStore.insert(record.removeIndex, record);
}
});
break;
}
}
}
}
);
这是我的模特:
Ext.define('Company',
{
extend: 'Ext.data.Model',
fields: [
{
name : 'id',
type : 'string'
},
{
name :'firm',
type : 'string',
allowBlank: false
},{
name : 'p'
},
{
name: 'linee'
},
{
name : 'c'
},
{
name : 'data',
type: 'date'
},
{
name :'note'
},
{
name :'paese'
},
{
name : 'email'
},
{
name : 'telefono'
},
{
name : 'type'
},
{
name : 'website'
},
{
name : 'session_id'
},
{
name : 'group_id'
}
],
proxy : {
type : 'rest',
url : 'data/companies/'
}
}
);
在谷歌上搜索后,我发现extjs3存在类似的问题,没有解决方案,我认为经过这么长时间之后还没有解决办法,这很奇怪;它现在应该工作
答案 0 :(得分:1)
我遇到了同样的问题,只是简单地通过就解决了
创建代理时batchActions: true
。 'rest'代理的默认行为是关闭批处理....(参见extjs / src / data / proxy / Rest.js)