在ExtJS4中修改存储请求?

在ExtJS4中修改存储请求?,extjs4,Extjs4,我对树存储发送的请求的结构有一些问题。但是我可以用beforeload侦听器修改它 store.on( 'beforeload', function( s, o ) { if( o.params.parent === 'root' ) delete o.params.parent; }); 在普通存储中,操作参数不包含params属性。。。 问题是,服务器总是需要一个sortby和sortorder参数,但是 这家商店有 只是一个排序参数(包含sortby和sortorder) 仅在对

我对树存储发送的请求的结构有一些问题。但是我可以用beforeload侦听器修改它

store.on( 'beforeload', function( s, o ) {
  if( o.params.parent === 'root' ) delete o.params.parent; 
});
在普通存储中,操作参数不包含params属性。。。 问题是,服务器总是需要一个
sortby
sortorder
参数,但是

这家商店有

  • 只是一个排序参数(包含sortby和sortorder)
  • 仅在对表进行排序时发送此参数,而不是在开始时发送(如果我将其放入代理的额外参数中,则始终会覆盖存储排序参数)

因此,我想将
排序
分为
sortby
sortorder
,并在每次存储请求时发送这些参数。

我遇到的第一个问题是代理的3个配置参数:

simpleSortMode: true
sortParam     : 'sortby'
directionParam: 'sortorder'
这分裂了整个世界

.../?sort=[[{property:'visits', direction: 'DESC'}]]&...
进入

第二个问题,存储从一开始就没有发送排序参数,我用存储的
sort()
方法解决了这个问题

...
constructor: function( config ) {
   this.callParent([config]);
   this.sort( config.sortby, config.sortorder );
}
...
在从服务器加载数据之前,我只是使用它以默认排序初始化存储。这导致它在第一个请求中发送排序参数

...
constructor: function( config ) {
   this.callParent([config]);
   this.sort( config.sortby, config.sortorder );
}
...