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

标签 javascript json ember.js odata

我正在使用符合 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/

相关文章:

javascript - 在成功的 api POST 响应后,如何通过 Google 跟踪代码管理器以编程方式衡量对 Google Analytics 的购买?

php - 我如何测试来自 php web 服务的 json 对象是否为空?

javascript - 我应该如何将用户的登录状态传递到我的 Ember.js 应用程序?

java - 如何将 Java POJO 转换为 JSON 字符串?

facebook - Facebook 喜欢 Ember 应用程序

ember.js - 在 Ember.js 中使用 Select2

javascript - 如何转换unicode\:0936\:093e\:092e to Devanagari script?

javascript - 在 Internet Explorer 中无法将 UTC 日期转换为本地日期

javascript - 如何拥有一堆原型(prototype)实例?

python - Json 正文在 AWS Lambda 函数中使用非英文字符被截断