2013-04-23 1 views
1

sencha touch의 새로운 기능입니다. 내가 mvc 메서드를 사용합니다. 내 코드를 참조하십시오Sencha 터치 중첩 목록 데이터 없음

Main.js

Ext.define('test.view.Main', { 
    extend: 'Ext.tab.Panel', 
    xtype: 'main', 
    requires: [ 
     'Ext.TitleBar', 
     'Ext.Video', 
     'Ext.dataview.NestedList' 
    ], 
    config: { 
     tabBarPosition: 'bottom', 

     items: [ 
      { 
       title: 'Welcome', 
       iconCls: 'home', 

       styleHtmlContent: true, 
       scrollable: true, 

       items: { 
        docked: 'top', 
        xtype: 'titlebar', 
        title: 'Welcome to Sencha Touch 2' 
       }, 

       html: [ 
        "You've just generated a new Sencha Touch 2 project. What you're looking at right now is the ", 
        "contents of <a target='_blank' href=\"app/view/Main.js\">app/view/Main.js</a> - edit that file ", 
        "and refresh to change what's rendered here." 
       ].join("") 
      }, 
      { 




       title: 'Get Started', 
       iconCls: 'action', 

       items: [ 
        { 
         docked: 'top', 
         xtype: 'titlebar', 
         title: 'Getting Started' 
        }, 
        { 
         xtype: 'nestedlist', 

        } 
       ] 
      } 
     ] 
    } 
}); 

Nestedlist.js

Ext.define('bluebutton.view.NestedList', { 
    extend: 'Ext.NestedList', 
    xtype: 'nestedlist', 
    requires: [ 
     'Ext.field.Select', 
     'Ext.field.Search', 

     'Ext.plugin.ListPaging', 
     'Ext.plugin.PullRefresh', 



    ], 
    config: { 

      store : { xclass : 'Test.store.data'}, 
     detailContainer: detailContainer, 
     detailCard: true, 



    }, 


}); 

Test.store.data

Ext.define('Test.store.data', { 
    extend: 'Ext.data.TreeStore', 

    config: { 
     model: 'Test.model.data', 
     defaultRootProperty: 'items', 
     root: { 
      items: [ 
      { 
       text: 'Drinks', 
       items: [ 
        { 
         text: 'Water', 
         items: [ 
          { text: 'Still', leaf: true }, 
          { text: 'Sparkling', leaf: true } 
         ] 
        }, 
        { text: 'Soda', leaf: true } 
       ] 
      }, 
      { 
       text: 'Snacks', 
       items: [ 
        { text: 'Nuts', leaf: true }, 
        { text: 'Pretzels', leaf: true }, 
        { text: 'Wasabi Peas', leaf: true } 
       ] 
      } 
     ] 
     } 
    } 
}); 

model.js 아래

Ext.define('Test.model.data', { 
    extend: 'Ext.data.Model', 
    config: { 
     fields: ['text'] 
    } 



}); 

그러나 중첩 목록은 데이터를 가져올 수 없습니다. 나는 빈 목록을 얻는다. 어떤 해결책?

답변

3

스토어에서 인라인 데이터를 제공하는 경우 root 대신 data 속성을 사용해야합니까?

Ext.define('Test.store.data', { 
    extend: 'Ext.data.TreeStore', 

    config: { 
     model: 'Test.model.data', 
     defaultRootProperty: 'items', 
     data: { 
      items: [ 
      { 
       text: 'Drinks', 
       items: [ 
        { 
         text: 'Water', 
         items: [ 
          { text: 'Still', leaf: true }, 
          { text: 'Sparkling', leaf: true } 
         ] 
        }, 
        { text: 'Soda', leaf: true } 
       ] 
      }, 
      { 
       text: 'Snacks', 
       items: [ 
        { text: 'Nuts', leaf: true }, 
        { text: 'Pretzels', leaf: true }, 
        { text: 'Wasabi Peas', leaf: true } 
       ] 
      } 
     ] 
     } 
    } 
});