我在使用sencha touch数据存储时遇到了一些问题。我正在将数据从jsonp加载到商店。数据正确存储。但是当我立即使用商店值访问视图并且对象为空时。
我不确定为什么?
数据存储:
parking.stores.ParkingFacility = new Ext.data.Store({
model: 'PF',
autoLoad: true
});
var GetData = function (lat, long) {
Ext.util.JSONP.request({
url: 'http://stg-parking.511.org/index/M_GetParkingFacilitiesByLatLng',
callbackKey: 'callback',
params: { latitude: lat, longitude: long },
callback: function (data) {
var result = data.Root;
parking.stores.ParkingFacility.loadData(data.Root);
parking.stores.ParkingFacility.save();
}
});
};
GetData函数使用json值填充商店。
查看:
parking.views.mapComponent = Ext.extend(Ext.Panel, {
title: 'Map',
mapOptions: {
center: new google.maps.LatLng(37.381592, -122.135672),
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
navigationControl: true,
navigationControlOptions: {
style: google.maps.NavigationControlStyle.DEFAULT
}
},
listeners: {
render: function (comp, map) {
var pdata = parking.stores.ParkingFacility;
}
}
});
侦听器中的pdata值为空。
非常感谢任何帮助。
此致 爬完
答案 0 :(得分:0)
在呈现视图之前,您似乎没有加载数据。由于Javascript的异步特性,视图不会反映商店中的数据也就不足为奇了。
我正在研究处理异步情况的方法。例如,让组件侦听存储的datachanged
事件并相应地重新呈现自己,或者在控制器中执行此操作。