gpt4 book ai didi

javascript - ember-model:如何强制从服务器重新获取记录?

转载 作者:行者123 更新时间:2023-11-29 22:03:32 25 4
gpt4 key购买 nike

我的后端公开了以下查询:

  • GET/api/foos
    • 返回所有 Foos 的列表,适合在主列表中显示
  • GET/api/foos/:foo_id
    • 返回一个 Foo,包含更详细的信息,适合在详细 View 中显示

我的前端在左侧显示一个 Foos 列表,当其中一个被点击时,右侧的 outlet(在 outlet 中)显示其详细版本。

{{#each foo in model}}
{{#link-to 'foo' foo}}{{foo.name}}{{/link-to}}
{{/each}}
{{outlet}}

我正在使用 ember-model存储我的模型,并实现了 App.Foo.adapterfindfindAll Hook ,这样当它们被调用时,它们会命中上面描述的后端 API 正确。

当我的应用首先点击 GET/api/foos(通过 findAll),随后当用户点击 Foo 时,ember-model 没有t hit GET/api/foos/:foo_id 因为它没有调用 find Hook ,因为它意识到该特定模型已经在缓存中。

这很好,因为当我们知道我们已经在内存中时,为什么还要再次获取它。

但是,在我的应用程序中,这个假设是不充分的。我必须进一步检查我是否有那个 Foo 的完整版本,例如!!aFoo.get('propertyOnlyInDetailedVersion'),否则我想强制 Foo 再次获取。

我该怎么做 - 如何让 ember-model 重新获取之前已经获取的对象?

最佳答案

这曾经是一个已知问题,但最近已修复。

逐字记录自:https://github.com/ebryn/ember-model/pull/297 (ckung 的评论)

Developers can define "transient: false" on their classes that extend Ember.Model, this will skip the cache check.

提交:https://github.com/ckung/ember-model/commit/dc46171d2121630e62a130d58dd6b709c6c00541

将您的 ember-model 更新到相关版本,您就可以正常工作了。

--

编辑:抱歉,我以为下一个 block 文本进行了我的最后一次编辑——但遗憾的是它没有。

所以我现在的想法是做一些类似CachedModel extends LiveModel extends Ember-Model的事情。然后将transient分别设置为truefalse

关于javascript - ember-model:如何强制从服务器重新获取记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22241200/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com