如何在单独的Ext网格中显示关联模型?

时间:2013-02-11 11:01:26

标签: javascript extjs grid extjs4

我有两个相关的模型,用户和订单。用户有很多订单。

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'
});

我想在一个网格面板中显示所有用户,在另一个网格中显示所有订单。我知道如何在网格中显示所有用户,我只是使用用户模型定义商店。但是我对如何在一个单独的网格中显示所有订单感到有点迷茫。我必须定义一个单独的商店吗?我用什么代理?谁有洞察力?基本上,我只需要概念性的理解。

2 个答案:

答案 0 :(得分:1)

我相信你所要求的是一个相当常见的用例。不幸的是,ExtJs还不能应对这种情况,因为目前每个网格都绑定到商店,但每次通过用户关联访问时,您的订单存储都是动态创建的。

好消息是你有各种方法来实现这一目标。我能想到的最好的一点是,每次用户点击用户行时,您都会获得订单存储(user.orders())。然后你可以通过这个新商店reconfigure你的网格。

答案 1 :(得分:0)

通常每个网格都需要自己的商店。显示所有订单的方式与显示所有用户的方式相同,只需更改商店ID就可以了。