使用sencha touch和phonegap时,json没有加载到iphone设备中

时间:2011-08-19 07:41:47

标签: json cordova extjs

我正在尝试将json加载到我的视图中。我使用带有sencha touch的phonegap,当我将应用程序加载到我的手机时,json根本没有加载..它在浏览器和模拟器中工作正常。 我非常感谢专家的一些帮助

以下是我尝试的主要代码:

商店:

App.stores.freebees = new Ext.data.Store({     型号:'Freebee',     autoLoad:true,     代理: {         输入:'ajax',         url:'fixtures / freebees',         读者:{             类型:'json'         }     } });

列表视图:

App.views.FreebeesList = Ext.extend(Ext.List,{     id:'indexlist',     布局:'适合',     商店:App.stores.freebees,     itemTpl:'{companyName},{title},{address}',

listeners: {
    'itemtap': function(list, index, item, obj) {
        Ext.dispatch({
            controller: 'Freebee',
            action: 'showDetails',
            id: list.getRecord(item).data.id,
            lat: list.getRecord(item).data.lat,
            longitude: list.getRecord(item).data.longitude,
            companyName: list.getRecord(item).data.companyName,
            address: list.getRecord(item).data.address,

        });
    }
},
initComponent: function() {
    App.views.FreebeesList.superclass.initComponent.apply(this, arguments);
}

}); Ext.reg('App.views.FreebeesList',App.views.FreebeesList);

json:

[     {         “id”:1,         “title”:“Freebee 1”,         “companyName”:“FöretagetAB1”,         “地址”:“Ekuddsvägen1Nacka 131 38 Sweden”,         “lat”:59.3058,         “经度”:18.1463     },     {         “id”:2,         “title”:“Freebee 2”,         “companyName”:“FöretagetAB2”,         “地址”:“Ekuddsvägen2Nacka 131 38 Sweden”,         “lat”:59.305,         “经度”:18.1478     } ]

2 个答案:

答案 0 :(得分:0)

到目前为止,我在ST的有限经验中,你无法加载像这样的设备上的文件。您可能必须使用脚本标记加载json文件并将其作为数据传递。

data = [ { "id": 1, "title": "Freebee 1", "companyName": "Företaget AB 1", "address": "Ekuddsvägen 1 Nacka 131 38 Sweden", "lat": 59.3058, "longitude": 18.1463 }, { "id": 2, "title": "Freebee 2", "companyName": "Företaget AB 2", "address": "Ekuddsvägen 2 Nacka 131 38 Sweden", "lat": 59.305, "longitude": 18.1478 } ];

然后将其加载到您的商店中,如下所示:

App.stores.freebees = new Ext.data.Store({ model: 'Freebee', root:data, autoLoad: true, proxy: { type: 'ajax', url: 'fixtures/freebees', reader: { type: 'json' } } });

(添加root:数据)

答案 1 :(得分:0)

我有类似的错误..请在此处查看我的问题和答案:

Sencha parses JSON in iphone simulator, but not on iPhone - phonegap