更新: 问题演示
我对 Sencha Touch 很陌生,正在尝试让 NestedList 正常工作。
我设置了两个模型文件,一个带有加载本地 json 文件的 ajax 代理的存储和包含NestedList
.
显示NestedList
我的 json 文件中的根元素,所以到目前为止一切正常。
但是,当我单击其中一个项目时,它会为视图设置动画,但结果列表仅再次显示父项目,但这次在标题栏中有一个后退按钮:
我真的不明白我在这里做错了什么。
JSON(紧凑)
{
"countries":[
{"name":"Germany","countryCode":"de","cities":[
{"name":"Berlin"},{"name":"Muenchen"}]},
{"name":"France","countryCode":"fr","cities":[
{"name":"Paris"},{"name":"Lyon"}]},
{"name":"United Kingdom","countryCode":"uk","cities":[
{"name":"London"},{"name":"Leicester"}]}]
}
楷模
城市:
Ext.define('MyApp.model.City', { extend: 'Ext.data.Model', config: { fields: [{ name: 'name', type: 'string' }] } });
国家:
Ext.define('MyApp.model.Country', { extend: 'Ext.data.Model', require: [ "MyApp.model.City" ], config: { fields: [ { name: 'name', type: 'string' }, { name: 'countryCode', type: 'string' } ], hasMany: [{ model: "MyApp.model.City", name: "cities" }] }, });
树店
Ext.define('MyApp.store.CountryTreeStore', {
extend: 'Ext.data.TreeStore',
config: {
autoLoad: true,
model: "MyApp.model.Country",
defaultRootProperty: "countries",
proxy: {
type: "ajax",
url: "/data/data.json",
reader: {
type: "json"
}
}
}
});
视图的一部分
items: [
{
xtype: 'nestedlist',
store: "CountryTreeStore",
displayField: "name"
}
]
更新:在( ) 的load
事件侦听器中
设置断点并检查“加载的”存储对象显示,它具有包含正确数据的属性。TreeStore
proxy
cities