extjs4代理休息多个请求问题

时间:2013-05-20 15:34:31

标签: rest extjs4

您好我的应用程序遇到了一个奇怪的行为:当我修改一个项目然后我的代理做了一个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存在类似的问题,没有解决方案,我认为经过这么长时间之后还没有解决办法,这很奇怪;它现在应该工作

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,只是简单地通过就解决了 创建代理时batchActions: true。 'rest'代理的默认行为是关闭批处理....(参见extjs / src / data / proxy / Rest.js)