如何在 ExtJS 存储代理中更改 extraParams 的分隔符?

How do I change the separator of extraParams in an ExtJS store proxy?

我遇到了与 ExtJS 存储的 extraParams 相关的问题。我需要将默认参数分隔符 & 更改为自定义的 ;因为我正在访问的 Web 服务没有响应 &.

有没有办法更改分隔符?

最佳,安德烈亚斯

我在 Sencha 论坛上找到了解决方法:

yourStore.proxy.url = 'your/url/' + yourParameter + ';.....';

使用这一行,在加载商店之前,可以绕过 extraParams 并仍然使用 url 字段将它们直接传递给使用的代理。

ExtJS 中没有内置任何内容来允许自定义参数分隔符 - 毕竟“&”的使用是事实上的标准。

但是,如果需要,您可以通过覆盖 Ext.Object.toQueryString

来更改默认行为
Ext.define('Ext.override.CustomQueryString', {
  override: 'Ext.Object',
  toQueryString: function() {
    var queryString = this.callParent(arguments);
    return queryString.replace('&', ':');
  }
})

类似的东西会改变全球行为。这可能是也可能不是一件好事。