0

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>'
]
});
4

1 に答える 1

3

問題はxtemplateにあるのではなく、視野にあると思います。たとえば、ドキュメントview.itemSelector

これは必須の設定です。このDataViewが動作するノードを決定するために使用される単純なCSSセレクター(例:div.some-classまたはspan:first-child)。itemSelectorは、DOMノードをレコードにマップするために使用されます。そのため、各レコードのセレクターに一致するルートレベル要素は1つだけにする必要があります

ビューに階層データを表示する問題については、このスレッドを確認してください。

于 2012-05-31T07:15:16.080 に答える