我正在尝试将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 } ]
答案 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