2012-05-30 16 views
0

JSON 데이터 & XTemplate으로로드 된 스토어로 앱의 사이드 바 탐색을 만들려고합니다. 기본 카테고리 & 하위 카테고리가 있습니다. 그러나 카테고리는 드로잉 중이며 사이드 바에있는 하위 카테고리를 생성/렌더링하지 않습니다. 문서를 보면 광산은 "아이들"예제와 거의 동일합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?EXTJS4.1 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' 
    } 
} 
}); 

sidebar.json

{"items": [ 
{ 
    "group": "Category1", 
    "tools": [ 
     {"name": "Sub A1"} 
    ] 
},{ 
    "group": "Category2", 
    "tools": [ 
     {"name": "Sub B2"}, 
     {"name": "Sub B3"} 
    ] 
}]} 

보기 그것은 그립니다 {그룹}가 아닌 {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>' 
] 
}); 

답변

3

저는이 문제가 xtemplate가 아니라보기에 있다고 생각합니다. Docs에 대한 view.itemSelector 말 :

이것은 필수 설정입니다. DataView에서 사용할 노드를 결정하는 데 사용되는 간단한 CSS 선택기 (예 : div.some-class 또는 span : first-child)입니다. itemSelector는 DOM 노드를 레코드에 매핑하는 데 사용됩니다. 이와 같이, 전용 뷰에서 계층 적 데이터를 표시하는 문제에 관한 각 레코드

체크 아웃 this thread의 선택과 일치하는 하나 개의 루트 레벨 요소 이 있어야합니다.

관련 문제