我有两个相关的模型,用户和订单。用户有很多订单。
Ext.define("User", {
extend: 'Ext.data.Model',
fields: [
'id', 'name'
],
hasMany: {model: 'Order', name: 'orders'},
proxy: {
type: 'ajax',
url : 'users.json',
reader: {
type: 'json',
root: 'users'
}
}
});
Ext.define("Order", {
extend: 'Ext.data.Model',
fields: [
'id', 'total'
],
belongsTo: 'User'
});
我想在一个网格面板中显示所有用户,在另一个网格中显示所有订单。我知道如何在网格中显示所有用户,我只是使用用户模型定义商店。但是我对如何在一个单独的网格中显示所有订单感到有点迷茫。我必须定义一个单独的商店吗?我用什么代理?谁有洞察力?基本上,我只需要概念性的理解。
答案 0 :(得分:1)
我相信你所要求的是一个相当常见的用例。不幸的是,ExtJs还不能应对这种情况,因为目前每个网格都绑定到商店,但每次通过用户关联访问时,您的订单存储都是动态创建的。
好消息是你有各种方法来实现这一目标。我能想到的最好的一点是,每次用户点击用户行时,您都会获得订单存储(user.orders()
)。然后你可以通过这个新商店reconfigure你的网格。
答案 1 :(得分:0)
通常每个网格都需要自己的商店。显示所有订单的方式与显示所有用户的方式相同,只需更改商店ID就可以了。