1

再会!

只是想问一下如何为 ajax 调用创建 JSONAPISerializer?根据我对文档的理解。在制作 JSONAPISerializer 之前,我必须先创建一个模型。但我需要调用未列为我的模型的自定义端点。

我的目标是pushPayload所有来自我的端点的侧载数据。但问题是:

{  
 "data":[  
  {  
     "type":"promotions-verify",   <----- it's not an actual model 
     "attributes":{  
        "cart-items-discount-in-cents":21900
      },
    "relationships":{...},    <---- sideloaded data that I want to push on ember-data
  }],

 "included": []              <---- sideloaded data that I want to push on ember-data
}
4

1 回答 1

0

你有什么理由不能做模型promotions-verify吗?这将是在侧加载数据中实现加载的最简洁方式,因为 Ember 将为您处理大部分序列化/推送到存储。

如果这不可能并且您发出 ajax 请求,您可能需要映射relationshipsincluded有效负载以相互匹配(Lodash_.map()可以很好地解决这个问题)。然后,您可以手动将该数据 ( pushPayload) 推送到 Ember 存储,同时确保您推送的项目也具有模型和序列化程序。

另外,我不确定这是否是偶然的,但您的示例有效负载不符合 JSON API 标准——该relationships对象应该嵌套在data. 这将影响 Ember 如何序列化数据,正如它所期望的那样:

{
    "data": [{
        "id": 1,
        "type": "promotions-verify",
        "attributes": {},
        "relationships": {}
    }],
    "included": []
}
于 2018-05-17T16:52:00.997 回答