我的整个Sencha Touch App(适用于app.js)有以下代码。我试图得到它,以便将JSON文件加载到localstorage中,用户名字段显示在“数据”页面的列表中。
任何有关出错的提示?应用程序本身加载正常,但JSON没有加载到localstorage或显示任何内容。
var helloWorld = new Ext.Application({
Users: Ext.regModel('Users', {
fields:[
{name:'id'},
{name:'username'},
{name:'password'},
]
}),
onlineStore: new Ext.data.Store({
model: 'Users',
proxy: {
type: 'scripttag',
url: 'http://selectout.net/manage/oil/www/samplecustomers.json',
reader: new Ext.data.JsonReader({
root: 'users'
}),
timeout: 2000,
listeners: {
exception:function () {
console.log("I think we are offline");
helloWorld.Users.bindStore(helloWorld.offlineStore);
helloWorld.offlineStore.load();
}
}
}
}),
offlineStore: new Ext.data.Store({
model: 'Users',
proxy: {
type: 'localstorage',
id: 'helloworld'
}
}),
launch: function() {
this.tabs = new Ext.TabPanel({
fullscreen: true,
dockedItems: [{xtype:'toolbar', title:'Hello World'}],
tabBar: {
ui: 'dark',
layout: {
pack: 'center'
}
},
items: [
{cls:'hello', title:'Hello'},
{cls:'world', title:'World'},
{
cls: 'Users',
title: 'Users',
xtype: 'list',
store: null,
itemTpl:'{username}'
}
]
});
this.Users = this.tabs.items.getAt(2);
this.onlineStore.addListener('load', function () {
console.log("I think we are online");
helloWorld.offlineStore.proxy.clear();
helloWorld.offlineStore.sync();
helloWorld.Users.bindStore(helloWorld.offlineStore);
});
this.onlineStore.load();
}
});
答案 0 :(得分:1)
如果文件samplecustomers.json
与您的应用位于同一个域中,则无需使用完整路径。
但是如果它在不同的域上,您将不得不使用JSONP来获取它:Ext.data.JsonP
您使用的代理设计用于相同的域读取。