Javascript 自定义Ember.js DS.RESTSerializer的根元素
我正在使用与OData兼容的后端,该后端需要特定的json结构 要更改ember模型序列化为的默认POST请求数据,可以基于每个模型创建自己的序列化程序。我有一个带有文本属性的问题模型 序列化程序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
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 });
},