Ember拥有多种型号

时间:2017-04-10 21:02:55

标签: ember.js ember-data contentful

我对Ember有点新意,所以请原谅我,如果这个问题说明我对框架缺乏了解。

基本上我试图在Ember中使用Contentful。我找到了这个插件,这似乎使这个非常简单https://github.com/davidpett/ember-data-contentful

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

在余烬中

modules: hasMany('module')

module可以是众多不同模型中的一种,假设需要一个与每种内容类型相对应的模型。

我已经在这里问了一个问题:https://github.com/davidpett/ember-data-contentful/issues/24但是还没有完成这项工作。

3 个答案:

答案 0 :(得分:2)

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

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

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

答案 1 :(得分:0)

好吧,我不知道满足。

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

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

答案 2 :(得分:0)

原来,ember-data-contentful lib存在问题。降级到版本clear all; clc; %% ss=serial('COM7','BaudRate',9600,'DataBits',8); set(ss,'Parity','none'); set(ss,'Terminator','LF'); fopen(ss); fprintf(ss,'*idn?'); aa=fscanf(ss) fclose(ss) 目前解决了这个问题。作者已经意识到了这个bug,并且正在寻找未来版本中的修复程序。谢谢大家的帮助!