ExtJS 3.4,使用远程模式在组合(i.e.Ext.form.ComboBox)搜索期间删除空格

ExtJS 3.4, remove white spaces during combo(i.e.Ext.form.ComboBox) search using remote mode

我正在使用 extJS 3.4。有一个组合(即Ext.form.ComboBox)具有远程搜索(即模式是'remote')。当我输入搜索文本并在末尾添加 space 时,space 附加 text/string 传递给 API,这会导致错误的响应数据,因此我必须对其进行限制前端。
有没有办法从搜索字词中删除白色 spaces?

这是我的组合框代码:

var productCombo = new Ext.form.ComboBox({
   fieldLabel: 'Product',
   name: 'product',
   lazyRender: true,
   store: productSearchStore,
   triggerClass: 'x-form-search-trigger',
   pageSize: 100,
   typeAhead: true,
   queryParam: 'term',
   mode: 'remote',
   minChars: 2,
   forceSelection: true,
   width: 400,
   displayField: 'display',
   valueField: 'id',
   listWidth: 500
});

这是我的店铺如下:

var productSearchStore = new Ext.data.JsonStore({
  proxy: new Ext.data.HttpProxy({
    method: 'GET',
    url: 'my API url here',
    restful: true
  }),
  root: 'data',
  defaultParamNames : {
    start : 'offset',
    limit : 'limit',
    sort : 'sort',
    dir : 'dir'
  },
  baseParams: {
    '_format': 'json'
  },
  fields: [
    {name: 'productName', type: 'string'},
    {name: 'productValue', type: 'string'},
    {name: 'productDescription', type: 'string'},
    {name: 'id', type: 'integer'},
    {name: 'productNumber', type: 'string'},
    {name: 'productSection', type: 'string'}
  ]
});

最后,我设法解决了这个问题。向 productSearchStore 添加了一个侦听器,并且在 "beforeload" 函数内部需要 trim 术语(参数)如下:

listeners: {
   'beforeload': function (store) {
       store.baseParams.term = store.baseParams.term.trim();
   }
}

请使用更新后的商店代码查找工作示例,如下所示:

var productSearchStore = new Ext.data.JsonStore({
  proxy: new Ext.data.HttpProxy({
    method: 'GET',
    url: 'my API url here',
    restful: true
  }),
  root: 'data',
  defaultParamNames : {
    start : 'offset',
    limit : 'limit',
    sort : 'sort',
    dir : 'dir'
  },
  baseParams: {
    '_format': 'json'
  },
  fields: [
    {name: 'productName', type: 'string'},
    {name: 'productValue', type: 'string'},
    {name: 'productDescription', type: 'string'},
    {name: 'id', type: 'integer'},
    {name: 'productNumber', type: 'string'},
    {name: 'productSection', type: 'string'}
  ],
  listeners: { //need to add this code
    'beforeload': function (store) {
        store.baseParams.term = store.baseParams.term.trim();
    }
  }
});