【问题标题】:ExtJS5: Get rid of root property in proxyExtJS5:摆脱代理中的根属性
【发布时间】:2014-11-09 03:51:41
【问题描述】:

我正在尝试将 REST API 连接到我的 ExtJS 应用程序。

对于GET /user 类似的请求,我返回如下响应:

{items: [{id: 1, ...}, {id: 2, ....}], total: 2}

所以我为此创建了一个模型:

Ext.define('model.User', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'id', type: 'int' },
        { name: 'name' },
    ],

    proxy: {
        reader: {
            type:          'json',
            totalProperty: 'total',
            rootProperty:  'items'
        },
        type:   'rest',
        url:    '/Api/User',
    }
});

网格加载数据并且看起来都很完美。现在我希望能够请求一条我的 api 作为{id: 1, ...} 的记录。 但是当我做model.User.load(1) 时,成功处理程序永远不会被触发,因为响应不包含items 属性。如果我将我的记录放在该属性中,它会起作用,但对于其他 API 用户来说也会看起来很丑。

如何在没有 root 属性的情况下使其工作?我在模型上找不到代理/阅读器的任何事件来动态更改它。

【问题讨论】:

    标签: rest extjs extjs5


    【解决方案1】:

    rootProperty 也可以是一个函数,因此您可以执行以下操作:

    rootProperty: function(raw) {
        return raw.items ? raw.items : raw;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 2011-02-15
      • 2012-11-07
      相关资源
      最近更新 更多