Ember.js 如何检查本地存储中是否已经存在一个Ember数据模型实例?

Ember.js 如何检查本地存储中是否已经存在一个Ember数据模型实例?,ember.js,ember-data,Ember.js,Ember Data,使用Ember数据,如何测试本地存储中是否已经存在模型实例 假设一个名为App.User=DS.model.extend({…})的余烬数据模型类型 someUser=App.User.find(someId)根据本地存储中是否已存在具有someId的记录,可以向远程服务器发出XHR,也可以不向远程服务器发出XHR。在发布XHR之前,我想首先检查本地存储中是否存在这样的记录。虽然效率不如挖掘存储缓存中特定的id,DS.Model附带了一个all()方法,在这种情况下它是干净和有用的App.Use

使用Ember数据,如何测试本地存储中是否已经存在模型实例

假设一个名为
App.User=DS.model.extend({…})
的余烬数据模型类型


someUser=App.User.find(someId)
根据本地存储中是否已存在具有
someId
的记录,可以向远程服务器发出XHR,也可以不向远程服务器发出XHR。在发布XHR之前,我想首先检查本地存储中是否存在这样的记录。

虽然效率不如挖掘存储缓存中特定的
id
DS.Model
附带了一个
all()
方法,在这种情况下它是干净和有用的
App.User.all()
返回一个包含所有已知
User
记录的过滤数组,因此检查是否存在具有给定
id
的记录的一种方法如下:

var isLoaded = App.User.all().some(function(user) {
  return user.get('id') === someId;
});

使用。

这可以用于模型的
find
方法吗?我试图通过添加延迟来模拟ajax请求,但如果已经请求了模型,我希望从存储中返回模型。我不知道为什么不这样做,但请记住,这是一种非常低效的检查记录存在性的方法。您不希望对每个
查找都执行此操作。余烬数据内部的某个地方是一个哈希,检查起来要快得多。