如何使用模型和存储在Sencha的列表的每一行中显示子和父JSON数据

时间:2012-10-12 06:06:29

标签: json model mapping extjs

我的服务器返回以下嵌套的json。我想显示全名,文本作为列表的每一行。等,

apple Message2

apple Message1

而不是这个,我得到一行包含所有数据如下:

apple Message2 Message1

如果json可能是这样的:

"packet": {
        "fullname": "apple",
        "wants": {
            "text": "Message 2",
        }
    }

我们可以在模型中提到该字段:

fields: [{
    name: 'fullname',
    type: 'string'
}, {
    name: 'text',
    mapping: 'wants.text'
}]

但我有wants数组,如何通过映射访问wants数组?

json String:

"packet": {
    "fullname": "apple",
    "wants": [{
        "text": "Message 2",

    }, {
        "text": "Message 1",
    }]
}

型号:

Ext.define('myApp.model.Packet', {
    extend: 'Ext.data.Model',
    config: {
        fields: [{
                name: 'fullname',
                type: 'string'
            }, {
                name: 'text',
                mapping: 'wants[0].text'
            } //Is this right? If right mean how to get next wants.how to iterate?
        ]
    }
});

商品

Ext.define('myApp.store.WantsStore', {
    extend: 'Ext.data.Store',
    config: {
        model: 'myApp.model.Packet',
        proxy: {
            type: 'ajax',
            url: 'server path',
            reader: {
                type: 'json',
                rootProperty: 'packet'
            }
        }
    }
});

列表:

Ext.define('myappApp.view.WantsList', {
    extend: 'Ext.List',
    xtype: 'wantslist',
    config: {
        itemCls: 'my-dataview-item',
        loadingText: 'Loading items...',
        emptyText: '<div class="notes-list-empty-text">No Wants found.</div>',
        itemTpl: '<div><p class="list-item-title">{fullname} <span id="time" class="list-item-title">{text}</span></p>'
    }
});

提前致谢!

0 个答案:

没有答案