ExtJS4.0.7——DirectStore的传参BUG

ExtJS版本:Ext4.0.7开发

应用场景:使用DirectStore为grid.Panel加载分页数据。

问题描述:在使用DirectSotre为grid.Panel加载数据时,发现分页参数不能正确传到后台。DirectStore的配置如下:

Ext.define('FQ.store.Users', {
	extend : 'Ext.data.Store',
	model : 'FQ.model.User',
	pageSize : 5,
	remoteSort : true,
	paramsAsHash : false,
	reader : {
		root : users
	},
	proxy : {
		type : 'direct',
		paramOrder : 'start|limit|sort|dir',
		api : {
			read : UsersAction.list
		}
	},
	sorters : [ 'name', 'email' ]
});

 

调用Store实例的load方法时,传递到后台的start,limit,sort,dir均为null。

解决方法:这是Ext4.0.7的一个bug,貌似在Ext4.1 preview版本中也还没更正。解决方法为,在渲染控件之前,既在Ext.application方法之前(本人采用的是MVC架构)插入如下代码:

Ext.override(Ext.data.proxy.Direct, {
    constructor: function(config){                                    
        var me = this;


        Ext.apply(me, config);
        if (Ext.isString(config.paramOrder)) {                            
            config.paramOrder = config.paramOrder.split(me.paramOrderRe); 
        }                                                             
        me.callParent(arguments);                                     
    }
});

 

参考:关于这个BUG的官方论坛

你可能感兴趣的:(ExtJS4.0.7——DirectStore的传参BUG)