gpt4 book ai didi

ember.js - Ember RESTAdapter-模型中的hasMany关系-如何使用POST发送空数组?

转载 作者:行者123 更新时间:2023-12-02 05:59:37 24 4
gpt4 key购买 nike

Ember 菜鸟在这里-

我有两个模型,它们的 hasMany 关系如下所示-

var Season = DS.Model.extend({
name: DS.attr('string'),
periods: DS.hasMany('period', {
async: false
})
});

var Period = DS.Model.extend({
from: DS.attr('date'),
to: DS.attr('date'),
season: DS.belongsTo('season')
});

一个季节可以没有任何时期存在-
这就是我创建季节记录并保存的方式-
        var season = this.store.createRecord('season', {
name: name
});

season.save().then(function(season){
/* season saved */
});

POST请求有效负载看起来像这样-
   {
"season" : {
"name" : "test"
}
}

但是后端API期望有效负载是这样的-具有空的period数组
    {
"season" : {
"name" : "test"
"periods" : []
}
}

我该如何实现?

最佳答案

您需要通过修改序列化程序来更改将 Ember 发送到服务器的内容,您可以仅覆盖该模型的SeasonSerializerApplicationSerializer以在整个应用程序中使用。

请参阅API文档http://emberjs.com/api/data/classes/DS.RESTSerializer.html#method_serialize的这一部分

就像是:

App.SeasonSerializer = DS.RESTSerializer.extend({
serialize: function(snapshot, options) {
var json = this._super(snapshot, options);

if(json.periods === undefined) {
json.periods = [];
}

return json;
}
});

关于ember.js - Ember RESTAdapter-模型中的hasMany关系-如何使用POST发送空数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29790905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com