Extjs - Возможен ли отдельный магазин Json?
Я использую ExtJS с рельсами 3.0.6. У меня есть форма и панель сетки. Например, форма содержит данные о клиенте, а сетка содержит данные о продукте, приобретенные конкретным клиентом (один ко многим).
Кто-нибудь может подсказать, как отправить все данные (форма + сетка) как одно хранилище json вместо двух хранилищ json?
Заранее спасибо!
1 ответ
Новый 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() возвращает Store, сконфигурированный с моделью Orders, потому что модель User определила ассоциацию hasMany: 'Orders'.
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'));
});
});
}
});