Ember-Data:DS.EmbeddedRecordsMixin的预期使用模式

时间:2015-04-02 14:27:13

标签: javascript ember.js ember-data

我有一个后端,让我以异步方式读取数据,但强制嵌入某些子数据(代替交易)。

将DS.EmbeddedRecordsMixin与...一起使用时

{
  serialize: 'records',
  deserialize: 'ids'
}

...(考虑到这个后端应该是正确的做法)我还有两个问题。

(1)http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html非常明确,DS.EmbeddedRecordsMixin不应与async:true混合。据我所知,问题在于混合async:true与嵌入式阅读,而非写作。另一方面,文档没有区别。我是否善于将async:true与上述配置混合(并且是本案例中缺少的文档),或者我对async:true和写作缺少什么?

(2)在我的后端删除父母时,所有孩子也被删除。删除应该只是父母的一次调用。我如何在余烬上做到这一点?我想删除商店中的父项和所有子项,发送一个 REST请求,此请求的成功/失败应该对所有这些记录具有权威性。然而,DS.EmbeddedRecordsMixin似乎并没有以任何方式帮助我朝这个方向发展。我是靠自己,还是我错过了什么?

2 个答案:

答案 0 :(得分:1)

就您的第一个问题而言,我认为您善于将async:trueEmbeddedRecordsMixin混合用于您的案例。请参阅this blog postmy example js-bin

至于2,EmbeddedRecordsMixin让你自己离开了。但是如果你查看代码,它所做的只是在提取它们时将记录推送到商店,所以要反转它,你应该做的就是从商店中卸载这些记录。我保留对子记录的引用,然后成功删除父级,使用record.unload()清理子级。 Same example js-bin

答案 1 :(得分:0)

为任何可能在以后偶然发现此问题的人回答数字(1):在Kori John Roys的回答的鼓励下,我提交了一个拉取请求以包含数据以清除文档。它已被接受,因此现在仅在文档中警告将async: true与嵌入的读取混合。