如何在 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?
- 直接从缓存中打开post(
reload: false
)
- 后台重新加载包括一个关系排除关系的关系
- 后台重载关系包括关系的关系
- 后台重新加载包括所有关系
例如使用缓存模型绘制初始模板后,还会发生 3 次更新。
您可以使用 DS.Model
and DS.ManyArray
上可用的 reload()
方法。它 returns 一个在重新加载记录后结算的 Promise。您可以根据需要使用该 Promise 链接您的重新加载。
您应该防止使用 isLoaded
属性 和 DS.ManyArray
.
上可用的 isLoaded
属性 重新加载尚未加载的记录
您可以使用 DS.Model
的 eachRelationship
method 遍历所有关系。
我正在获取没有关系的记录列表,比如 posts
。当我选择一个 post 时,我想立即看到 post,并在后台加载它的关系。
这是可能的:
this.store.findRecord('posts', params.id, {
reload: false,
backgroundReload: true,
加载关系后,视图会自动更新。
但是,有些关系很复杂,加载需要一些时间。它们在滚动后变得相关。有一个 hasMany
关系 对于初始网页浏览很重要。他们的关系也很重要,但我也宁愿推迟。
那么,是否可以在点击单个的时候按顺序做以下几点post?
- 直接从缓存中打开post(
reload: false
) - 后台重新加载包括一个关系排除关系的关系
- 后台重载关系包括关系的关系
- 后台重新加载包括所有关系
例如使用缓存模型绘制初始模板后,还会发生 3 次更新。
您可以使用 DS.Model
and DS.ManyArray
上可用的 reload()
方法。它 returns 一个在重新加载记录后结算的 Promise。您可以根据需要使用该 Promise 链接您的重新加载。
您应该防止使用 isLoaded
属性 和 DS.ManyArray
.
isLoaded
属性 重新加载尚未加载的记录
您可以使用 DS.Model
的 eachRelationship
method 遍历所有关系。