我有一个带有自定义JSON阅读器的Ext / Sencha商店代理。我注意到读者(因此,代理)在使用之前被称为方式。应用程序启动过程如下:
问题
我希望在添加主视图(添加使用商店的列表)之前不调用代理。但是,如果读者经常访问第二步中设置的全局地理变量,则它为空。
我该如何解决这个问题?只有在确定了地理位置后才能调用代理。
app.js代码片段
Ext.application({
models: ['Station'],
stores: ['Stations'],
views: ['Main'],
controllers: ['Application'],
launch: function () {
Ext.create('Ext.util.Geolocation', {
...
listeners: {
locationupdate: function (geo) {
// store lat/long as global variables
Ext.Ajax.request({
...
success: function (response) {
...
Ext.fly('appLoadingIndicator').destroy();
Ext.Viewport.add(Ext.create('APP.view.Main'));
}
...
}).updateLocation();
应用/存储/ Stations.js
Ext.define('SunApp.store.Stations', {
extend: 'Ext.data.Store',
requires: ['SunApp.store.StationReader'],
config: {
autoLoad: true,
...
proxy: {
...
reader: {
type: 'stationReader'
}
}
}
});
应用/存储/ StationReader.js
Ext.define('SunApp.store.StationReader', {
extend: 'Ext.data.reader.Json',
alias: 'reader.stationReader',
getResponseData: function (response) {
var data = this.callParent([response]);
return this.filter(data);
},
...
});
答案 0 :(得分:1)
将商店的autoLoad
属性设置为false
,然后手动加载。