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

Ember-Data: Intended usage pattern of DS.EmbeddedRecordsMixin

我有一个后端,让我可以异步读取数据,但强制嵌入某些 child 数据(代替事务)。

将 DS.EmbeddedRecordsMixin 与 ...

一起使用时
{
  serialize: 'records',
  deserialize: 'ids'
}

...(鉴于此后端,这应该是正确的做法)我还有两个问题。

(1) http://emberjs.com/api/data/classes/DS.EmbeddedRecordsMixin.html 非常明确,DS.EmbeddedRecordsMixin 不应与 async:true 混用。据我了解,问题是将 async:true 与嵌入式 reading 混合使用,而不是 writing。另一方面,文档没有区别。我是否擅长将 async:true 与上述配置混合使用(文档是否缺少这种情况),或者我缺少关于 async:true 和写作的什么?

(2) 在我的后端删除parent时,所有children也被删除了。删除应该只是对 parent 的一次调用。我如何在 ember 端执行此操作?我想删除商店中的parent和所有children,发送一个 REST请求并且这个请求的success/failure应该是权威的所有这些记录。然而,DS.EmbeddedRecordsMixin 似乎并没有在那个方向上以任何方式帮助我。我是一个人,还是我错过了什么?

就您的第一个问题而言,我认为您很擅长将 async:trueEmbeddedRecordsMixin 混合使用。参见 this blog post and my example js-bin

至于 2,EmbeddedRecordsMixin 留给你自己。但是如果你看一下代码,它所做的只是在提取记录时将记录推送到存储中,因此要反转它,你所要做的就是从存储中卸载这些记录。我会保留对子记录的引用,然后在成功删除父记录后,使用 record.unload() 清理子记录。 Same example js-bin

为以后可能偶然发现此问题的任何人回答编号 (1):在 Kori John Roys 的回答的鼓励下,我已经向 ember 数据提交了拉取请求以澄清文档。它被接受了,因此现在在文档上只警告将 async: true 与嵌入式 reading.

混合使用