我正在使用符合 OData 的后端,它需要特定的 json 结构。
要更改 ember 模型序列化到的默认 POST 请求数据,您可以在每个模型的基础上创建自己的序列化器。我有一个带有文本属性的问题模型。
序列化器
Excelsior.QuestionSerializer = DS.RESTSerializer.extend({
serialize: (question, options) ->
json = {
text: "lalalala"
}
输出
{question: {text: "lalalala"}}
我想要什么
{d: {text: "lalala"}}
最佳答案
适配器是数据的命名空间,因此如果您重写适配器中的相关方法,则可以更改该功能:
createRecord: function(store, type, record) {
var url = this.buildURL(type.typeKey);
var data = store.serializerFor(type.typeKey).serialize(record);
return this.ajax(url, "POST", { data: data });
},
updateRecord: function(store, type, record) {
var data = store.serializerFor(type.typeKey).serialize(record);
var id = get(record, 'id'); //todo find pk (not always id)
return this.ajax(this.buildURL(type.typeKey, id), "PUT", { data: data });
},
关于javascript - 自定义 Ember.js DS.RESTSerializer 的根元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23573420/