2011-11-02 92 views
0

我是Sencha touch的新手,需要您的帮助来解决问题。我正在尝试使用以下JSON和Sencha触摸代码来显示子文本列表。我看着彻底的API,发现儿童的数据可以被访问,但后来我不知道我怎么可以发送回面板/存储为Sencha触摸 - 显示嵌套JSON数据的子元素

  • 显示列表儿童21
  • 儿童22

我有嵌套JSON数据如下:

{ 
    "items":[ 
     { 
     "id":"1", 
     "text": "Parent 1", 
     "leaf": false, 
     "items": [ 
       { 
        "id":1, 
        "text": "child 1", 
        "leaf": true 
       }, 
       { 
        "id":2, 
        "text": "child 2", 
        "leaf": true 
       } 
     ] 
    }, 
    { 
     "id":"2", 
     "text": "Parent 2", 
     "leaf": false, 
     "items": [ 
      { 
       "id":3, 
       "text": "child 21", 
       "leaf": true 
      }, 
     { 
       "id":4, 
       "text": "Child 22", 
       "leaf": true 
      } 
     ] 
     } 
    ] 
    } 

现在我的煎茶触摸代码如下:

Ext.ns('MyApp'); 
    MyApp.Child= Ext.regModel(Child, { 
    fields: ['id','text','day','date'], 
    belongsTo: 'Parent', 
    idProperty:'id', 
    proxy: { 
     type: 'rest', 
     url: 'test.json' 
    } 
    }); 
    MyApp.Parent = Ext.regModel('Parent', { 
    fields: [ 
     {name: 'id', type: 'int'}, 
     {name: 'text', type: 'string'} 
    ] , 
     associations: [ 
      { type: 'hasMany', model: 'Child', name: 'items'} 
     ], 
     proxy: { 
     type: 'ajax', 
     url: 'test.json' 
    } 

    }); 
    MyApp.parentStore = new Ext.data.Store({ 
    model : 'Parent', 
    proxy: { 
     type: 'rest', 
     url: 'test.json', 
     reader: { 
      type: 'json', 
      root : 'items' 
     } 
     }, 

     autoLoad:true 
    }); 

    MyApp.parentStore.filter('id','2'); 

// Do something here to get the list of child items. 

// MyApp.childStore = ? 

    MyApp.appList = new Ext.Panel ({ 
     fullscreen : true, 
     dockedItems : [ 
      { 
        xtype : 'toolbar', 
        title : 'Applications', 
        dock : 'top' 
      } 
     ], 
     items: [{ 
     xtype: 'list', 
     store: MyApp.childStore, // ?????? 
     itemTpl: '<div class="contact"><strong>{text}</strong></div>' 
    }]      

}); 

回答