【问题标题】:ember data do not save ID from returned data from serverember 数据不从服务器返回的数据中保存 ID
【发布时间】:2014-11-01 13:59:12
【问题描述】:

我正在和 ember 一起做教程。

并尝试将其与休息适配器连接到后端。

完全去做应用程序的工作,但是当我尝试保存模型时,它确实将帖子发送到 api 端点, 它返回新保存的模型的Id,但它不反映在客户端。

如果我完全重新加载所有数据,它可以工作,但对于单个模型,返回的 Id 不会更新。

由于我的模型没有“id”,它使用 primaryKey: 'Id',它适用于页面重新加载,但是 保存后服务器响应时,返回的 ID 数据不会在客户端内部更新。

如何进一步调试错误?

好的,我得到了部分解决方案。

我的服务器只返回数据

{
   "Id": 4767482418036736,
   "title": "asdfas"
  }

而不是

todo:{
   "Id": 4767482418036736,
   "title": "asdfas"
  }

但是由于我不能对我的服务器进行太多更改,所以我要教 ember 寻找不带括号的 todo 吗??

【问题讨论】:

    标签: ember.js ember-data


    【解决方案1】:

    在我看来,您的 JSON 响应格式不正确,请参阅 https://github.com/emberjs/data/blob/master/packages/ember-data/tests/integration/adapter/rest_adapter_test.js 示例)。

    鉴于您无法更改服务器,请查看 Serializers (http://emberjs.com/api/data/classes/DS.RESTSerializer.html)

    【讨论】:

    • 通过覆盖正确的序列化程序得到了我的答案,但感谢 test.js 链接,它帮助很大。
    【解决方案2】:

    我得到了答案,

    我需要以这种方式覆盖 ExtractSingle 序列化程序函数。

    extractSingle:(store, type, payload, id)->
        payload = { todo : payload }
        return this._super(store, type, payload, id);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-17
      • 2012-09-13
      • 1970-01-01
      • 2018-04-06
      • 2011-02-28
      • 1970-01-01
      相关资源
      最近更新 更多