0

我正在尝试为我的应用程序创建一个侧边栏导航,其中包含一个加载了 JSON 数据和 XTemplate 的商店。有基本类别和子类别。但是,类别正在绘制,它不会在侧边栏中创建/呈现子类别。查看文档,我的几乎与他们的“孩子”示例完全相同。我究竟做错了什么?

文档: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'
     }
}
});

侧边栏.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>'
]
});
4

1 回答 1

3

我相信问题不在 xtemplate 中,而是在视图中。文档view.itemSelector说:

这是必需的设置。一个简单的 CSS 选择器(例如 div.some-class 或 span:first-child),用于确定此 DataView 将使用哪些节点。itemSelector 用于将 DOM 节点映射到记录。因此,应该只有一个根级元素与每条记录的选择器匹配

查看有关在视图中显示分层数据的问题的线程。

于 2012-05-31T07:15:16.080 回答