Ext Js代理传递参数

时间:2015-02-16 08:52:19

标签: javascript extjs proxy store sencha-architect

我想将参数传递给Store代理以从服务器检索正确的数据。我需要传递没有名称前缀和值的参数。

而不是这种网址:

myAppUrl/collections/units?collectionId=54

可以这样做:

myStore.getProxy().extraParams.collectionId = 54;

我想打个电话:

myAppUrl/collections/54/units

我的Web服务适用于两个调用我只需要正确的客户端代码来传递参数。

请提供帮助和建议。

3 个答案:

答案 0 :(得分:2)

一个老问题,但我写信给任何有这个问题的人。由于我自己的需要,我在这个包(对于ExtJS 6)中实现了@Saki的想法:

https://bitbucket.org/alfonsonishikawa/extjspackages/wiki/Server%20URL%20Placeholders

这个想法是能够使用如下的URL:

proxy: {
  type: 'rest',
  url: 'myAppUrl/collections/${collectionId}/units',
  appendId: false
}

使用该软件包,您只需像上面那样配置代理,并使用params调用#load()

store.load({
  params: {
      collectionId: 54
  }
});

getProxy().extraParams可用作默认值)

This is the source code例如你问过@Saki。

答案 1 :(得分:1)

它看起来几乎像REST请求,但不完全像REST在url末尾放置索引。您可以通过实现自定义的buildUrl Ajax或Rest代理来解决它。在任何情况下,请参阅如何在Rest代理中实现此方法。

答案 2 :(得分:0)

您可以动态设置您的网址,然后使用以下代码调用商店的加载方法。

store.getProxy().setUrl('your new url');
store.load();

但是如果你要使用这种方法,那么你必须设置正确的URL,每次其他人可能会得到错误的数据。