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的官方论坛