保存所属更改模型中的更改不属于有效负载

时间:2015-08-31 16:13:36

标签: ember.js ember-data

我尝试将对Ember中的子模型的父模型的更改保存到我的服务器,但由于某种原因,REST Payload不包含belongsTo关系

我的2个模型定义如下:

parent.js

import DS from 'ember-data';

export default DS.Model.extend({
  parentName: DS.attr('string')
});

child.js

import DS from 'ember-data';

export default DS.Model.extend({
  childName: DS.attr('string'),
  parent: DS.belongsTo('parent')
});

当我通过编辑和保存现有记录将belongsTo更改为childModel的不同父级时。不知何故,我的有效载荷不包括父模型。

例如。

我有一个这样的孩子:

{
    id: 1,
    parent: 1,
    childName: "Child 1"
}

在代码中我这样做:

childModel.set('parent', parentModel); // this is a different parentModel, one with id: 2

我希望有效载荷看起来像这样:

HTTP-PUT:http://server/child/1

{
    id: 1,
    parent: 2,
    childName: "Child 1"
}
然而,实际上,有效载荷是这样的:

HTTP-PUT:http://server/child/1

{
    id: 1,
    childName: "Child 1"
}

这里出了什么问题?为什么有效负载中缺少父关系?

一些额外信息:

  1. Ember v2.0.1
  2. Ember-data v2.0.0
  3. 关系必须是async:true(默认值)
  4. 我使用标准DS.JSONAPISerializer与DS.RestAdapter结合使用

1 个答案:

答案 0 :(得分:0)

在序列化期间,我只从我的JSON Api - JSON中提取了属性哈希,显然我需要在关系哈希中寻找关系。