这是我的应用代码:
Ext.application({
name: 'ProjectName',
appFolder: APP_URL + "app",
// phoneStartupScreen: 'LOGO.png',
controllers: ['Site_inside'],
views: ['Inside_spotlist'],
models: ['Spot'],
stores: ['Spots'],
launch: function() {
//bootstrap
console.log("inner site bootstrap");
//var spotlist = Ext.create("ProjectName.view.Inside_spotlist");
Ext.Viewport.add({
xclass: 'ProjectName.view.Inside_spotlist'
});
return true;
}
});
查看'Inside_spotlist'代码:
Ext.define('ProjectName.view.Inside_spotlist', {
extend: 'Ext.List',
alias: 'spotlist',
xtype: 'spotlist',
requires: [
'ProjectName.store.Spots'
],
config: {
store: 'Spots',
itemTpl: '{first_name} {last_name}'
},
initialize: function() {
console.log("spolist loaded");
}
});
'Spot'模型的代码:
Ext.define("ProjectName.model.Spot", {
extend: 'Ext.data.Model',
config: {
fields: [
{
name: 'firstName',
type: 'string'
},
{
name: 'lastName',
type:'string'
}
]
}
});
最后,Spots商店:
Ext.define("ProjectName.store.Spots", {
extend: 'Ext.data.Store',
config: {
listeners: {
load: function() {
console.log("loaded store");
}
},
autoLoad: true,
autoSync: true,
model: 'ProjectName.model.Spot',
data:[
{
firstName: 'test',
lastName: 'test2'
}
]
}
});
它加载正常(出现控制台消息,没有错误或警告消息),但没有出现包含我的测试数据的列表。如果我尝试上下“抓取”网站,右侧的iOS风格滚动条会显示,但列表中没有数据。
此代码有什么问题?
答案 0 :(得分:0)
我建议您遵循此处描述的惯例:Loading data into List using store sencha touch 2
虽然答案中的评论似乎表明提问的人是按照你的方式做的,但我不确定这是怎么回事。尝试按照答案中描述的方式进行操作,即使用Ext.create
创建商店实例,然后使用Ext.data.StoreManager.lookup
在任何需要的地方查找和使用该实例。这里的问题是列表中的store
属性没有商店实例。
答案 1 :(得分:0)
你可以试试这个:
Ext.Viewport.add(
Ext.create('ProjectName.view.Inside_spotlist')
);
而不是:
Ext.Viewport.add({
xclass: 'ProjectName.view.Inside_spotlist'
});
此外....
你可以试试这个:
config: {
store: 'ProjectName.store.Spots',
itemTpl: '{first_name} {last_name}'
}
而不是:
config: {
store: 'Spots',
itemTpl: '{first_name} {last_name}'
}