Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sencha touch sencha touch store从json加载数据,但访问视图时,store项为空_Sencha Touch_Extjs - Fatal编程技术网

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

Sencha touch sencha touch store从json加载数据,但访问视图时,store项为空,sencha-touch,extjs,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({

我对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值填充存储

视图:

侦听器中的pdata值为空

任何帮助都将不胜感激

问候,,
Pawan

在渲染视图之前,您似乎不会加载数据。由于Javascript的异步特性,视图不反映存储中的数据也就不足为奇了


我将研究处理异步情况的方法。例如,让组件侦听store的datachanged事件,并相应地重新启动自身,或者在控制器中执行此操作。

感谢danmarner的帮助。你能给我看一个让组件监听store的datachanged事件并相应地重新启动的代码片段吗。我对sencha touch完全陌生。我已将控制器更新为类似此存储的内容。在“dataChanged”上,函数{parking.views.viewport.setActiveItem parking.views.map,options.animation;};从未调用视图渲染方法。你能告诉我有什么问题吗。是否需要删除并添加组件才能正确渲染,或者如何强制调用render方法。事件名称都是小写的。Aka datachanged而不是datachanged
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;

        }
    }

});