【问题标题】:How to change Ember-Data PUT request expected server response如何更改 Ember-Data PUT 请求预期的服务器响应
【发布时间】:2015-08-24 09:01:52
【问题描述】:

我正在使用

DEBUG: -------------------------------
DEBUG: Ember             : 1.12.1
DEBUG: Ember Data        : 1.13.4
DEBUG: jQuery            : 2.1.4
DEBUG: -------------------------------

我的服务器 API 仅使用更新对象的 ID 回复 PUT 请求,此响应示例:

{
  data:[123],
  meta{total:1},
  errors:[]
}

如何更改 ember-data 配置以允许这样的对象? AFAIK ember-data 期望响应中的整个发送对象。 谢谢

分辨率:

import DS from "ember-data";
export default DS.Store.extend({

    /**
     * @tampered _super
     * @param internalModel
     * @param dataArg
     */
    didSaveRecord: function (internalModel, dataArg) {
        var data;
        if (dataArg && dataArg.data && dataArg.data.id && dataArg.data.id !== 'undefined' && Ember.typeOf(dataArg.data.id) !== 'undefined') {
            data = dataArg.data;
        }
        if (data) {
            // normalize relationship IDs into records
            this._backburner.schedule("normalizeRelationships", this, "_setupRelationships", internalModel, internalModel.type, data);
            this.updateId(internalModel, data);
        }

        //We first make sure the primary data has been updated
        //TODO try to move notification to the user to the end of the runloop
        internalModel.adapterDidCommit(data);
    },


});

【问题讨论】:

    标签: rest ember.js ember-data


    【解决方案1】:

    您使用的是什么序列化程序?使用 JSON API,您可以尝试以下方式:

    export default DS.JSONAPISerializer.extend({
    
      normalizeUpdateRecordResponse(store, clazz, payload) {
        payload.data = {
          id: payload.data[0]
        }
        return payload;
      }
    })
    

    这里有更多信息:http://emberjs.com/blog/2015/06/18/ember-data-1-13-released.html

    【讨论】:

    • 我使用 DS.RESTSerializer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2014-10-16
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多