如何在 Ember 中分多个阶段进行 backgroundReload?

How do I backgroundReload in multiple stages in Ember?

我正在获取没有关系的记录列表,比如 posts。当我选择一个 post 时,我想立即看到 post,并在后台加载它的关系。

这是可能的:

this.store.findRecord('posts', params.id, {
    reload: false,
    backgroundReload: true,

加载关系后,视图会自动更新。

但是,有些关系很复杂,加载需要一些时间。它们在滚动后变得相关。有一个 hasMany 关系 对于初始网页浏览很重要。他们的关系也很重要,但我也宁愿推迟。

那么,是否可以在点击单个的时候按顺序做以下几点post?

例如使用缓存模型绘制初始模板后,还会发生 3 次更新。

您可以使用 DS.Model and DS.ManyArray 上可用的 reload() 方法。它 returns 一个在重新加载记录后结算的 Promise。您可以根据需要使用该 Promise 链接您的重新加载。

您应该防止使用 isLoaded 属性 和 DS.ManyArray.

上可用的 isLoaded 属性 重新加载尚未加载的记录

您可以使用 DS.ModeleachRelationship method 遍历所有关系。