我想将参数传递给Store代理以从服务器检索正确的数据。我需要传递没有名称前缀和值的参数。
而不是这种网址:
myAppUrl/collections/units?collectionId=54
可以这样做:
myStore.getProxy().extraParams.collectionId = 54;
我想打个电话:
myAppUrl/collections/54/units
我的Web服务适用于两个调用我只需要正确的客户端代码来传递参数。
请提供帮助和建议。
答案 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,每次其他人可能会得到错误的数据。