2013-04-23 153 views
1

我是sencha觸摸新手。我使用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

如果您在店內提供的內嵌數據不應該是data屬性而不是root

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