0

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

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

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

4

2 回答 2

1

我相信您所要求的是一个相当常见的用例。不幸的是,ExtJs 还不能开箱即用地处理这个问题,就像当前每个网格都绑定到一个商店一样,但是您的订单商店是在每次您通过其用户关联访问它时动态创建的。

好消息是您有多种方法可以实现这一目标。我能想到的最好的方法是,每次用户点击用户行时,您都会得到您的订单商店 ( user.orders())。然后,您可以使用这个新商店重新配置您的网格。

于 2013-02-11T13:05:09.353 回答
0

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

于 2013-02-11T12:13:13.787 回答