Ember RESTSerializer,关系表现不尽如人意

时间:2017-08-15 02:05:33

标签: ember.js ember-data

我正在使用RESTAdapter和RESTSerializer来解析带有关系的json有效负载(sideloaded)。 DS.RESTAdapter的文档声明侧载相关数据应该在它们自己的类型的键下返回,例如

{
  "posts": {
    "id": 5,
    "title": "I'm Running to Reform the W3C's Tag",
    "author": "Yehuda Katz",
    "comments": [1, 2]
  },
  "comments": [{
    "id": 1,
    "author": "User 1",
    "message": "First!",
  }, {
    "id": 2,
    "author": "User 2",
    "message": "Good Luck!",
  }]
}

当使用我自己的有效负载时,除非我为每个相关项添加一个类型字段,否则我会得到一个解析错误:'无法读取属性'替换'未定义'。

这是我的有效载荷:

{
    "practice-items": [
        {
            id: 1,
            title: 'Major Scales',
            discipline: 1
        },
        {
            id: 2,
            title: 'Minor Scales',
            total_issues_count: 5,
            discipline: 1
        }
    ],
    "disciplines": [
        {
            id: 1,
            title: 'Scales',
            type: 'discipline'
        },
        {
            id: 2,
            title: 'Pieces',
            type: 'discipline'
        }
    ]
}

这有效 - 但如果我省略每个相关记录中的'type'字段则不行。知道为什么会这样 - 我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

我认为问题是您在每个discipline中使用了密钥practice-items,但是侧载数据的密钥是disciplines。他们需要匹配,或 - 您正在看到的 - 您可以使用与type属性指定的完全不同的名称。