将后端json响应转换为Ember存储预期格式

时间:2016-03-16 20:42:00

标签: ember.js

我很擅长使用并尝试使用一些POC来适应我们现有的应用程序。

使用ember 1.13.12 并使用数据 1.13.15

我有两个型号,

company.js

import DS from 'ember-data';

export default DS.Model.extend({
    name: DS.attr('string'),
    employee: DS.hasMany('employee',{async:true}),
});

employee.js

import DS from 'ember-data';

export default DS.Model.extend({

    name: DS.attr('string'),
    alias: DS.attr('string')
});

序列化程序扩展了JSONSerializer,并为两个模型设置了主键,并为员工模型设置了总是嵌入的选项。

/ employee / 7的后端json响应, - 这导致错误 - Ember.A(...)映射不是函数

{
    "name": "abc"
    "employee": {
        "employeeId": 7,
        "name": "employee7",
        "alias": "e7"
    }
}

后端json对/ employees的响应 - 这会毫无问题地推送到ember商店

{
    "name": "abc"
    "employee": [
        {
            "employeeId": 1,
            "name": "employee1",
            "alias": "e1"
        },
        {
            "employeeId": 7,
            "name": "employee7",
            "alias": "e7"
        }
    ]
}

通过上述回应,我遇到了两个问题,

  • 没有“公司”型号的“ID”推送到商店(解决方法最终将后端响应更改为“id”)
  • 当我尝试让单个员工说雇员/ 7 /来自后端的json响应时不会返回数组(解决方法添加了一个normalize hook并添加了一行payload.employee = [ payload.employee]并且它起作用了)

有没有办法在不改变后端响应和变通方法的情况下解决上述问题。

0 个答案:

没有答案