Javascript Sencha touch 2存储动态代理Url
我正在创建一个高度依赖地理位置的应用程序。我在app.js中有变量“GeoApp.app.geoLat”和GeoApp.app.geoLong”,它们都是用地理坐标设置的 如果我在任何视图中使用console.out,那么访问和输出值都没有问题。在存储中,值是空的,就好像它没有访问权限,或者变量没有定义或存在一样 实现我的目标的最佳实践是什么Javascript Sencha touch 2存储动态代理Url,javascript,sencha-touch-2,Javascript,Sencha Touch 2,我正在创建一个高度依赖地理位置的应用程序。我在app.js中有变量“GeoApp.app.geoLat”和GeoApp.app.geoLong”,它们都是用地理坐标设置的 如果我在任何视图中使用console.out,那么访问和输出值都没有问题。在存储中,值是空的,就好像它没有访问权限,或者变量没有定义或存在一样 实现我的目标的最佳实践是什么 Ext.define('GeoApp.store.Places', { extend:'Ext.data.Store', config:
Ext.define('GeoApp.store.Places', {
extend:'Ext.data.Store',
config: {
model:'GeoApp.model.Place',
autoLoad:'true',
proxy: {
type:'ajax',
url:'googleapiurl/json?location=' + GeoApp.app.geoLat + ','+ GeoApp.app.geoLong + '&radius=500...',
reader: {
type:'json',
rootProperty:'results'
}
}*/
}
})
这是因为应用程序启动时会创建应用商店,url字符串也是如此。因此,
GeoApp.app.geoLat
和GeoApp.app.geoLong
在启动应用程序时为空或未定义,它们不会出现在url中
我要做的是将url设置为googleapiurl/json?radiu=500…
,然后添加location
参数作为代理的extraParam
,如下所示:
Ext.getStore('Places').getProxy().setExtraParams({
location: GeoApp.app.geoLat + ',' + GeoApp.app.geoLong
});
希望这对你有所帮助,因为你的商店是在你的应用程序启动时创建的,你的url字符串也是。因此,
GeoApp.app.geoLat
和GeoApp.app.geoLong
在启动应用程序时为空或未定义,它们不会出现在url中
我要做的是将url设置为googleapiurl/json?radiu=500…
,然后添加location
参数作为代理的extraParam
,如下所示:
Ext.getStore('Places').getProxy().setExtraParams({
location: GeoApp.app.geoLat + ',' + GeoApp.app.geoLong
});
希望这对您有所帮助您可以在加载存储之前设置代理url。因此,您必须将
自动加载
设置为错误
。例如,您可以在视图组件的show()
函数中使用下面的代码
show: function(component, options){
var store = Ext.getStore('Places');
store.setProxy({
url:'googleapiurl/json?location=' + GeoApp.app.geoLat + ','+ GeoApp.app.geoLong + '&radius=500...',
});
store.load();
}
祝你好运 您可以做的是在加载存储之前设置代理url。因此,您必须将
自动加载
设置为错误
。例如,您可以在视图组件的show()
函数中使用下面的代码
show: function(component, options){
var store = Ext.getStore('Places');
store.setProxy({
url:'googleapiurl/json?location=' + GeoApp.app.geoLat + ','+ GeoApp.app.geoLong + '&radius=500...',
});
store.load();
}
祝你好运 那么您将如何访问代理url中的额外参数位置?我不明白。您希望在哪里访问额外参数?一旦你设置好了,客户端就没有什么可做的了。那么你如何访问代理url中的额外参数位置呢?我不明白。您希望在哪里访问额外参数?一旦设置好了,客户端就没有什么可做的了。这实际上改变了整个代理,而不仅仅是url。最好执行store.getProxy().setUrl(URL)这实际上改变了整个代理,而不仅仅是URL。最好执行store.getProxy().setUrl(URL)