Extjs - Возможен ли отдельный магазин Json? - PullRequest
0 голосов
/ 23 апреля 2011

Я использую ExtJS с рельсами 3.0.6. У меня есть форма и сетка. Например, форма содержит данные о клиенте, а сетка содержит данные о продукте, приобретенные конкретным клиентом (один ко многим).

Кто-нибудь может подсказать, как отправить все данные (форму + сетку) как одно хранилище json вместо двух хранилищ json?

Заранее спасибо!

1 Ответ

0 голосов
/ 28 апреля 2011

Новый Ext JS 4 имеет ассоциации моделей, которые решат проблему (http://docs.sencha.com/ext-js/4-0/guide/data)

// each User hasMany Orders
Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'email'],
    proxy : {
        type: 'rest',
        url : '/users',
        reader: 'json'
    },

    hasMany: 'Orders'
});

// each Order belongsTo a User, and hasMany OrderItems
Ext.define('Order', {
    extend: 'Ext.data.Model',
    fields: ['id', 'user_id', 'status'],
    belongsTo: 'User',
    hasMany: 'OrderItems'
});

// each OrderItem belongsTo an Order
Ext.define('OrderItem', {
    extend: 'Ext.data.Model',
    fields: ['id', 'order_id', 'name', 'description', 'price', 'quantity'],
    belongsTo: 'Order'
});

. Вызов user.orders () возвращает хранилище, сконфигурированное с моделью Orders, поскольку модель User определилаАссоциация hasMany: «Заказы».

User.load(123, {
    success: function(user) {
        //we can iterate over the orders easily using the Associations API
        user.orders().each(function(order) {
            console.log(order.get('status'));

            //we can even iterate over each Order's OrderItems:
            order.orderItems().each(function(orderItem) {
                console.log(orderItem.get('title'));
            });
        });
    }
});
...