加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

rest – ExtJS5:摆脱代理中的root属性

发布时间:2020-12-13 23:51:15 所属栏目:Linux 来源:网络整理
导读:我正在尝试将REST API连接到我的ExtJS应用程序. 对于GET /用户相似的请求,我返回如下响应: {items: [{id: 1,...},{id: 2,....}],total: 2} 所以我为此创建了一个模型: Ext.define('model.User',{ extend: 'Ext.data.Model',fields: [ { name: 'id',type: '
我正在尝试将REST API连接到我的ExtJS应用程序.

对于GET /用户相似的请求,我返回如下响应:

{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属性的情况下使其工作?我无法在模型上找到代理/阅读器的任何事件来动态更改它.

解决方法

rootProperty也可以是一个函数,所以你可以这样做:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读