我的后端公开了以下查询:
GET /api/foos
- 返回所有 Foo 的列表,适合在主列表中显示
GET /api/foos/:foo_id
- 返回单个 Foo,具有更详细的信息,适合在详细视图中显示
我的前端在左侧显示了一个 Foos 列表,当单击其中一个时,右侧的插座(在插座中)显示其详细版本。
{{#each foo in model}}
{{#link-to 'foo' foo}}{{foo.name}}{{/link-to}}
{{/each}}
{{outlet}}
我正在使用ember-model来存储我的模型,并且已经实现了App.Foo.adapter
'sfind
和findAll
钩子,这样当它们被调用时,它们会正确地命中上述后端 API。
当我的应用程序首先点击GET /api/foos
(via findAll
) 时,然后当用户点击 Foo 时,ember-model 没有点击GET /api/foos/:foo_id
,因为它没有调用find
钩子,因为它意识到该特定模型已经在缓存中.
这很好,因为当我们知道我们已经在内存中拥有它时,为什么还要再次获取它。
但是,在我的应用程序中,这个假设是不够的。我必须进一步检查我是否获得了该 Foo 的完整版本,例如!!aFoo.get('propertyOnlyInDetailedVersion')
,否则我想强制 Foo 再次获取。
我该怎么做 - 如何让 ember-model 重新获取之前已经获取的对象?