我正在尝试使用加载了JSON数据的商店为我的应用创建侧边栏导航。 XTemplate。有基本类别&子类别。但是,类别是绘图,它不是在侧边栏中创建/渲染子类别。看看文档,我的几乎与他们的“孩子”例子完全相同。我做错了什么?
Doc:http://docs.sencha.com/ext-js/4-1/#!/api/Ext.XTemplate
模型
Ext.define('APP.model.SideBar', {
extend: 'Ext.data.Model',
fields: [
{name: 'group', type: 'string'},
{name: 'tools', type: 'string', mapping: 'tools'}
],
proxy: {
type: 'ajax',
url : '/js/res/sidebar.json',
reader: {
type: 'json',
root: 'items'
}
}
});
sidebar.json
{"items": [
{
"group": "Category1",
"tools": [
{"name": "Sub A1"}
]
},{
"group": "Category2",
"tools": [
{"name": "Sub B2"},
{"name": "Sub B3"}
]
}]}
查看它绘制{group}但不绘制{tools.name}
Ext.define('APP.view.SideBar', {
alias: 'widget.appsidebar',
extend: 'Ext.view.View',
id: 'sidebar',
width: 180,
border: false,
cls: 'sidebar-list',
selModel: {
deselectOnContainerClick: false
},
store: 'SideBar',
itemSelector: '.apptool',
tpl: [
'<tpl for=".">',
'<div class="sidebar-title">{group}</div>',
'<tpl for="tools">',
'<div class="apptool">{name}</div>',
'</tpl>',
'</tpl>'
]
});
答案 0 :(得分:3)
我认为问题不在xtemplate中,而是在视野中。 view.itemSelector
的{{3}}说:
这是必需的设置。一个简单的CSS选择器(例如div.some-class 或span:first-child)将用于确定此节点 DataView将与之合作。 itemSelector用于映射DOM 节点到记录。 因此,应该只有一个根级别元素 与每条记录的选择器匹配
查看Docs有关在视图中显示分层数据的问题。