使用Ember Data,我如何测试本地存储中是否已存在模型实例?
假设名为App.User = DS.Model.extend({ ... })
的Ember数据模型类型。
someUser = App.User.find(someId)
可能会也可能不会向远程服务器发出XHR,具体取决于本地存储中是否已存在someId
的记录。在发布XHR之前,我想首先检查本地商店是否存在这样的记录。
答案 0 :(得分:6)
答案 1 :(得分:3)
虽然不如针对特定id
挖掘商店的缓存那样高效,但DS.Model
附带了all()
方法,在这种情况下该方法很干净且有用。 App.User.all()
返回包含所有已知User
条记录的已过滤数组,因此检查具有给定id
的记录是否存在的一种方法如下:
var isLoaded = App.User.all().some(function(user) {
return user.get('id') === someId;
});