是否有一种很好的方法可以强制Ember Data从服务器eaven加载资源,如果它已经存储了?
我有一个简单的显示用户动作 store.find('users',id)
模型只加载一次,第一次尝试显示页面我第二次去我的模型从商店加载,这是我知道的正常的余烬数据行为 . 但是我每次都需要加载它 .
编辑:我找到的唯一方法是这样做:
@store.find('user',{id: params.user_id}).then (users)->
users.get('firstObject')
但它迫使我对我的索引动作实施“虚假”的表演行动......
6 回答
我想这个... http://emberjs.com/api/data/classes/DS.Model.html#method_reload
祝好运
此外,您可以调用
getById
,它将返回该记录的任何实例,或者为null,然后调用unloadRecord
将其从缓存中删除 . 我喜欢Edu 's response as well though, then I wouldn' t不得不担心其他地方存在的记录 . 也许我会使用getById
然后reload
,这样任何引用用户的引用都会更新 . (原谅我错误的咖啡,如果错的话) .热卖presses,感谢machty:
您可以在setupController挂钩中使用promise和Edu提到的重载方法执行此操作 .
如果您确定要显示的记录在某个操作后会发生变化,那么您可以在路径中调用
this.refresh()
方法 . 例如:如果从子路线呼叫动作 - 例如产品/建议 - 将为父路线和儿童路线重新加载模型 .
我认为你要找的是DS.Store#fetchById