【发布时间】:2016-01-29 23:28:30
【问题描述】:
我知道这个主题已经在 stackoverflow 和其他论坛上讨论过,但我找不到正确的方法。
我有一个名为“post”的模型,其中包含帖子信息(用户、描述等)。用户收到一些帖子,阅读它们并对其进行操作。当我请求 GET /api/posts/
我还有一个名为“post-state”的模型,我在其中保存人们阅读帖子的行为:当他们喜欢、分享、投票或收藏帖子时。
export default DS.Model.extend({
post: belongsTo('post'),
user: belongsTo('user'),
liked: attr('boolean', { defaultValue: false }),
favourited: attr('boolean', { defaultValue: false }),
voted: attr('boolean', { defaultValue: false }),
shared: attr('boolean', { defaultValue: false }),
});
我正在为我的 ember 应用程序寻找一种方法来批量保存我的后期状态模型,就像我批量接收帖子一样。帖子状态将通过 api 调用 POST /api/post-states/
我在讨论中读到最好的方法是创建一个自定义适配器,但我不确定要在其中放入什么才能做到这一点......也许是创建一个函数saveAllRecords() ?
对我来说最好的解决方案是什么?
感谢您的帮助!
【问题讨论】:
-
曾经看过这个:emberjs.com/api/data/classes/DS.Store.html#method_pushPayload 或者一个记录数组,你可以 .invoke('save') [不知道这是否全部通过一次推送。可能必须覆盖 store.scheduleSave]
-
无论是通过 ED 模型还是通过自定义请求来设计 POST 请求负载主要取决于后端的能力,它是否可以原子批处理相关模型等。如果不能,仍然通过哈希或数组承诺可能会起作用,但结果可能会有所不同,具体取决于后端如何处理请求。可能的解决方案:emberjs.com/api/ember/3.7/modules/rsvp。这个问题需要澄清一些。
标签: javascript ember.js ember-data