sencha touch store从json加载数据,但在访问视图时,store项为空

时间:2011-11-23 00:28:21

标签: sencha-touch extjs

我在使用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值为空。

非常感谢任何帮助。

此致 爬完

1 个答案:

答案 0 :(得分:0)

在呈现视图之前,您似乎没有加载数据。由于Javascript的异步特性,视图不会反映商店中的数据也就不足为奇了。

我正在研究处理异步情况的方法。例如,让组件侦听存储的datachanged事件并相应地重新呈现自己,或者在控制器中执行此操作。