Загрузка связанных данных в Sencha Touch без вложения

Я работаю над базовым приложением Sencha Touch, которое отображает список текстовых сообщений и имя связанного пользователя, отправившего сообщение. Я следил за учебными пособиями в Интернете о том, как настроить ассоциации моделей, но каждое руководство предполагает, что сервер создает данные с вложенной структурой.

Данные, с которыми я работаю, имеют плоскую структуру с отношениями первичного/внешнего ключа, и я не могу понять, как заставить Sencha загружать оба хранилища из одного ответа.

модель/User.js

Ext.define('App.model.User', {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            { name: 'uid', type: 'number' },
            { name: 'name', type: 'string' },
        ]
    }
});

магазин/Users.js

Ext.define('App.store.Users', { 
    extend: 'Ext.data.Store',                                                    

    config: {                                                                    
        model: 'App.model.User',                                                 
        autoLoad: true,
    }
});

модель/Message.js

Ext.define('App.model.Message', {
    extend: 'Ext.data.Model',

    config: {
        fields: [
            { name: 'id', type: 'number' },
            { name: 'uid', type: 'number' },
            { name: 'message', type: 'string' }
        ],

        associations: [{
            type: 'belongsTo',
            model: 'App.model.User',
            primaryKey: 'uid',
            foreignKey: 'uid'
        }],

        proxy: {
            type: 'jsonp',
            url: 'messages.json',

            reader: {
                type: 'json',
                rootProperty: 'req_messages'
            }
        }
    }
});

магазин/Сообщения.js

Ext.define('App.store.Messages', {
    extend: 'Ext.data.Store',

    config: {
        model: 'App.model.Message',
        autoLoad: true,
    }
});

Сообщения правильно загружаются и отображаются моим приложением (образец ответа JSON ниже ),но я не могу понять, как заставить связанных пользователей загружаться в магазин. Можно ли это решить с помощью конфигурации, или мне понадобится специальный ридер? Любая помощь приветствуется!

Пример JSON

{
    "users": [{
        "uid": "1",
        "name": "John"
    }, {
        "uid": "3033",
        "name": "Noah"
    }],
    "req_messages": [{
        "id": "539",
        "uid": "1",
        "message": "my message"
    }, {
        "id": "538",
        "uid": "1",
        "message": "whoops"
    }, {
        "id": "534",
        "uid": "3033",
        "message": "I love pandas."
    }]
}
7
задан Noah Watkins 15 July 2012 в 22:00
поделиться