【问题标题】:How to convert array of object(hasMany relationship data) to array of id?如何将对象数组(hasMany 关系数据)转换为 id 数组?
【发布时间】:2021-12-15 09:59:45
【问题描述】:

我想获取数据并在 UI 中显示。以下是我获取“电影”数据的方法。

let movies= yield this.store.findAll('movie');

我记录“电影”。如下图所示,“照片”没有数据。

这是网络:

我正在像这样从 hasura 获取数据:

{
  "data": {
    "movies": [
      {
        "id": "584db434-5caa-475e-b3ec-e98e742f0030",
        "movieid": "abc123",
        "description": "Penquins dancing in antactica",
        "photos": [
          {
            "id": "c4d2833a-4896-42b0-ae8b-0ab9fe71d1d4"
          },
          {
            "id": "e04697e3-21fe-4f0e-8012-443f26293340"
          }
        ]
      }
    ]
  }
} 

但 Ember.js 无法读取和呈现关系数据(照片)。是不是“照片”数据应该是这样的?

"photos": [c4d2833a-4896-42b0-ae8b-0ab9fe71d1d4, e04697e3-21fe-4f0e-8012-443f26293340]

如何在 Ember 中转换它?还是在哈苏拉?

【问题讨论】:

  • 您能澄清一下您要做什么吗?您只是想在 UI/Handlebars 中显示数据吗?您是否通过模型挂钩获取信息?
  • 您使用的是什么适配器?是否有办法将 hasura 格式的数据解释为 {json:api} 标准格式(什么 ember-data 使用)?你在使用 ember 数据吗?还是你在使用 fetch?
  • @Cameron 我已经编辑了这个问题。希望那更清楚
  • @NullVoxPopuli 我正在使用重新适配器。我不确定有没有办法格式化数据。

标签: ember.js hasura


【解决方案1】:

感谢您更新您的问题!

由于您使用的是 ember-data,因此您需要一个自定义适配器和序列化程序来将您的数据形成 ember-data 所期望的格式(因为 API 决定如何构建数据的方式有无数种)。

更多信息可以在这里找到: https://guides.emberjs.com/release/models/customizing-adapters/ 在这里:https://guides.emberjs.com/release/models/customizing-serializers/

您的数据已经结构良好,因此转换应该希望顺利进行。如果您有问题,请回复评论

【讨论】:

  • 嗨,我正在使用 RestAdapter 和 RestSerializer。但我不确定如何实现它。我应该将照片数据转换为"photos": [c4d2833a-4896-42b0-ae8b-0ab9fe71d1d4, e04697e3-21fe-4f0e-8012-443f26293340] 吗?所以那个余烬能读懂吗?
  • 您能否将您的适配器和序列化程序代码添加到您的问题中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-01
相关资源
最近更新 更多