Ember.js 无id的ember数据嵌入对象

Ember.js 无id的ember数据嵌入对象,ember.js,ember-data,Ember.js,Ember Data,我似乎找不到一种方法来为ember数据中没有id的嵌入对象使用模型。 Jehuda Katz的《如何处理嵌入式对象》一书接近了我的目标,尽管我一直在寻找 断言失败:您必须在传递给“推送”的对象中包含记录的“id” 在阅读以下说明时,这似乎是预期的行为: 没有id属性的记录不被视为嵌入记录,模型实例必须具有id属性才能与余烬数据一起使用 从REST-API接收的JSON如下所示: { 'line': { _id: 5, name: "my line", opts: {.

我似乎找不到一种方法来为ember数据中没有id的嵌入对象使用模型。 Jehuda Katz的《如何处理嵌入式对象》一书接近了我的目标,尽管我一直在寻找

断言失败:您必须在传递给“推送”的对象中包含记录的“id”

在阅读以下说明时,这似乎是预期的行为:

没有
id
属性的记录不被视为嵌入记录,模型实例必须具有
id
属性才能与余烬数据一起使用

从REST-API接收的JSON如下所示:

{
  'line': {
    _id: 5,
    name: "my line",
    opts: {...},
    dataset: [
      {x: 1473167369522, y: 5},
      {x: 1473167469522, y: 6},
      {x: 1473167569522, y: 7}
    ]
  }
}
app/models/line.js

export default DS.Model.extend({
  name: DS.attr('string'),
  opts: DS.attr(),
  dataset: DS.hasMany('point')
});
app/models/point.js

export default DS.Model.extend({
  x: DS.attr('custom'),
  y: DS.attr('')
});
app/serializers/line.js

export default DS.RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    dataset: { embedded: 'always'}
  }
});
我应该如何着手解决这个问题?
我已经考虑过只创建包含嵌套对象数组的属性
DS.attr()
,并完全放弃嵌套模型,但这也行不通,因为我需要对嵌入对象的属性之一进行自定义(反)序列化

相关(尽管Ember API已经经历了相当多的变化):
-

-

您可以使用
余烬数据模型片段
加载项:

您可以使用
余烬数据模型片段
加载项:

您是否考虑过在序列化程序中生成唯一的id?当您不修改这些模型时,应该可以很好地工作。可能您不希望相同的
x/y
对出现两次,因此只需使用分隔符将它们连接起来就可以了。我们在做这件事的时候只遇到了痛苦。Tom Dale表示,他们只是将simple ember.objects与fetch()一起用于天窗感谢分享@DavidDuncan,目前我只需按照@Lux的建议在每个点上添加一个
id
,但我非常感兴趣的是听ember+timeseries数据的体验…@MikiDi我们使用时间序列,在我们的应用程序中,
Point
不是一个模型,因为我们的案例不需要它,而且是因为性能原因。正如您所评论的,我们将
dataset
属性设置为
attr()
。您是否考虑过在序列化程序中生成唯一的id?当您不修改这些模型时,应该可以很好地工作。可能您不希望相同的
x/y
对出现两次,因此只需使用分隔符将它们连接起来就可以了。我们在做这件事的时候只遇到了痛苦。Tom Dale表示,他们只是将simple ember.objects与fetch()一起用于天窗感谢分享@DavidDuncan,目前我只需按照@Lux的建议在每个点上添加一个
id
,但我非常感兴趣的是听ember+timeseries数据的体验…@MikiDi我们使用时间序列,在我们的应用程序中,
Point
不是一个模型,因为我们的案例不需要它,而且是因为性能原因。正如您所评论的,我们将
dataset
属性设置为
attr()
。它是否具有余烬模型的所有功能?它是否具有余烬模型的所有功能?