Sencha在Dataview中嵌套了json显示

时间:2013-07-18 08:40:15

标签: extjs sencha-touch-2 sencha-touch-2.1

请帮我解决这个问题..我花了太多时间来解决这个问题.. 我有一个json文件,我想在dataview中显示它..我可以显示父值但无法获取子节点

这是我的json格式

{
    "items": [
        {
            "name": "Science Gallery",

            "menu": [
                {
                    "commenttext": "SC Sandwich"
                },
                {
                    "commenttext": "SC Toasted Sandwich"
                },
                {
                    "commenttext": "SC Panini"
                },
                {
                    "commenttext": "SC Ciabatta"
                },
                {
                    "commenttext": "SC Burrito"
                }
            ]
        }

    ]
}

这是我的观点 / **  * TouchCalendar.view.EventListPanel  * /

Ext.define('WinReo.view.PropertyDetailsView', {
    extend: 'Ext.Panel',

    requires: [
        'Ext.dataview.List',
        'Ext.layout.Fit'
    ],

    alias: 'widget.propertydetailsview',
    id:'propertydetailsview',
    config: {
        // title   : 'Events List',
        layout  : 'fit',
        store:'WinReo.store.PropertyDetails',
        id:'propertydetailsview',
        cls:'propertydetailscss',


    },

    initialize: function(){


       var listadd =  Ext.create('Ext.DataView', {
            fullscreen: true,
            id: 'ListePieces',
           //itemTpl:  listTemplate,
           //data:[],
           itemTpl: [
               '{name}',
               '<div>',
               '<h2><b>Menu</b></h2>',
               '<tpl for="menu">',
               '<div>{item}</div>',
               '</tpl>',
               '</div>'
           ].join(''),

           loadingText: 'Loading...',
           store: storedetails
           /*listeners:{
               itemtap: function(record, index){

                alert('hi');
               }
           }*/

        });
        this.add(listadd);


    }

});

这是我的模特

Ext.define('WinReo.model.PropertyDetailsModel', {
    extend: 'Ext.data.Model',
   // requires: ['WinReo.model.PropertyDetailsModelComments'],
    config: {
        fields: [

            {name: 'name'},
            {name: 'commenttext'},
            {name: 'item'}


        ]
    }


});

这是我的商店

Ext.define('WinReo.store.PropertyDetails', {
    extend: 'Ext.data.Store',
    requires: [
        'WinReo.model.PropertyDetailsModel',

        'Ext.data.Store',
        'Ext.dataview.DataView',
        'Ext.data.NodeStore',
        'Ext.data.TreeStore'
    ],

    config: {
        storeId: 'propertydetails',
        defaultRootProperty: 'items',
        model: 'WinReo.model.PropertyDetailsModel',
        autoLoad: true,


        proxy: {

            type: 'ajax',
            method:'post',
            url: 'resources/data/fullproperty.json',
            //url: apiurl+'PropertyList.ashx?switch=GetPIP&reoid=',

            reader: {
                type: 'json',
                rootProperty: 'items'

            }
        }


    }

});

我可以用noram Model显示这个嵌套的json,是否需要任何模型关联?

请帮助...我非常感谢你的帮助..谢谢提前

1 个答案:

答案 0 :(得分:0)

按如下方式更改商店中的代理设置。我删除了'rootProperty'并添加'record'

proxy: {
type: 'ajax',
method:'post',
url: 'resources/data/fullproperty.json',
//url: apiurl+'PropertyList.ashx?switch=GetPIP&reoid=',
reader: {
    type: 'json',
    record: 'items'
}

}