我在Sencha Touch 2上尝试一些基本的应用程序。
我试图在sencha触摸列表中读取json
,而不是xml
。
我的商店定义如下,
Ext.define('MyApp.store.ListStore', {
extend: 'Ext.data.Store',
config: {
fields: ['id','name','email'],
proxy: {
type: 'jsonp',
url: 'users.xml',
reader: {
type: 'xml',
record: 'user',
rootProperty: 'users'
}
},
autoLoad:true,
}
});
和我的xml
文件位于我的商店所在的位置。
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<id>1</id>
<name>Ed Spencer</name>
<email>ed@sencha.com</email>
</user>
<user>
<id>2</id>
<name>Abe Elias</name>
<email>abe@sencha.com</email>
</user>
</users>
我的列表视图就像这样,
var listStore = Ext.create('MyApp.store.DStore');
Ext.define('MyApp.view.NavigateView', {
extend: 'Ext.navigation.View',
xtype: 'navigateview',
requires: [
'MyApp.store.ListStore'
],
config: {
fullscreen: true,
scrollable: true,
items: [
{
xtype: 'list',
title: 'List',
id: 'datalist',
onItemDisclosure: true,
store: listStore,
itemTpl: '<div class="contact">{name}</div>',
}
]
}
});
但没有显示o / p。
我在哪里做错了?请提出建议!
答案 0 :(得分:0)
夫妻问题。您的XML无效,需要像
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<id>1</id>
<name>Ed Spencer</name>
<email>ed@sencha.com</email>
</user>
<user>
<id>2</id>
<name>Abe Elias</name>
<email>abe@sencha.com</email>
</user>
</users>
另一个问题是你不应该像那样创建你的商店。在stores数组中指定它并通过列表中的商店ID引用它,或者创建商店,如:
store : {
xclass : 'MyApp.store.ListStore'
}
另外,我有一个额外的逗号...额外的逗号!它在autoLoad的末尾:true