Javascript 自定义Ember.js DS.RESTSerializer的根元素

Javascript 自定义Ember.js DS.RESTSerializer的根元素,javascript,json,ember.js,odata,Javascript,Json,Ember.js,Odata,我正在使用与OData兼容的后端,该后端需要特定的json结构 要更改ember模型序列化为的默认POST请求数据,可以基于每个模型创建自己的序列化程序。我有一个带有文本属性的问题模型 序列化程序 Excelsior.QuestionSerializer = DS.RESTSerializer.extend({ serialize: (question, options) -> json = { text: "lalalala" } 输出 {quest

我正在使用与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 });
},