1

我对 Ember 有点陌生,所以如果这个问题说明了我对框架的普遍缺乏理解,请原谅我。

基本上我正在尝试将 Contentful 与 Ember 一起使用。我找到了这个插件,这似乎使这变得非常简单https://github.com/davidpett/ember-data-contentful

但是,我遇到了一个开始让我非常沮丧的问题。我有一个内容类型,它有一个“多引用”字段,它允许用户引用多个不同内容类型中的多个。本质上,我有一个“模块”字段,它将是几个不同模块的数组。每个模块基本上都是它自己的模型。

在余烬中

modules: hasMany('module')

module可以是许多不同模型之一,假设需要有一个模型对应于每种内容类型。

我已经在这里问了一个问题:https ://github.com/davidpett/ember-data-contentful/issues/24但还不能让它工作。

4

3 回答 3

2

要解决这个问题,您需要让每个模型都从实现 Contentful 系统元数据属性的基本模型继承。它们sys位于 json 响应的属性中。

然后,您可以根据基本模型的内容类型将此基本模型扩展为与该内容类型对应的特定模型。

我意识到您正在尝试在您发布的问题线程中做类似的事情。我认为您遇到的问题是您的基类上没有 contentType 属性。

于 2017-04-11T06:39:13.570 回答
0

结果发现 ember-data-contentful 库存在问题。降级到版本0.2.1现在可以解决问题。作者已意识到该错误,并正在研究未来版本中的修复。感谢大家的帮助!

于 2017-04-12T04:17:50.657 回答
0

好吧,我不知道满足。

我的团队确实通过使用计算来手动请求特定模型来解决这种动态类型。由于我们没有找到更好的方法让 ember-data 在 hasMany 中支持多个模型。而且效果非常好。
但是对于批量查询,您可能需要实现批量请求折叠技术来提高性能。

另一个想法是,将 hasMany 替换为 DS.attr() 为无类型。并尝试是否可以 pushPayload 并查看这些“模块”,并手动将模块模型与适配器中的 model.modules 匹配。这可能不起作用或仅适用于 GET 请求。
或者只是将这些有效负载模型名称/id 与您的 model.modules 匹配,然后使用计算来查看正确的记录并安装到模型。

于 2017-04-11T11:03:36.120 回答