我有2个模型 - 例如 - 用户和订单
Ext.define('AM.model.User', {
extend: 'Ext.data.Model',
fields: ['id', 'username', 'firstName', 'lastName', 'state', 'city'],
associations: [
{
type: 'hasMany',
model: 'Order',
name: 'orders'
},],
});
Ext.define('AM.model.Order', {
extend: 'Ext.data.Model',
fields: ['id', 'userId', 'date', 'description', 'value'],
belongsTo: 'User',
});
Run Code Online (Sandbox Code Playgroud)
和他们的商店.我正在寻找一种方法来显示网格中两个商店的数据.(所以我的专栏是firstName,lastName,orderDate,orderDescription,orderValue...
显示它们的正确方法是什么?
谢谢.
如果要使用关联执行此操作,则需要为网格列定义渲染器.
像这样:
{
text: "orderDescription",
renderer: function(value,meta,record){//1.
//var orderStore = record.orderStore;//2a.
//var orderList = ordersStore.data.items;//2b.
var orderList = record.orders().data.items; //3.This line is the same as 2 the lines above(2a,2b).
var order = orderList[0]; //4. TODO..loop through your list.
var description = order.data.description; //5.
return description ;
},
Run Code Online (Sandbox Code Playgroud)
我会尝试解释任何想要这样做的人.
[name: 'orders'].orders()方法再次基于名称"订单"自动创建.这只是返回orderStore.商店包含一个字段data- >,其中包含一个字段items. items是实际的订单清单.order再次包含一个data包含实际数据的字段.