我使用Ember和Ember Data与我的RESTful API交谈。我获取数据的方法之一是通过属性方法,如下所示:
Em.Controller.extend({
categories: function () {
return this.store.find('category');
}.property()
});
现在,当我在模板中使用categories
时,它会正确获取类别并显示这些类别。当我看到为多个控制器运行相同的查询时,我的问题出现了。
假设我在另一个控制器中有类别,我看到为此再次提取类别,就像 store 没有缓存数据一样。
我的期望是缓存会缓存数据,因此无需再执行其他API请求。
我还体验到,即使在提取所有类别后,也会请求个别类别,例如在我有一个具有类别关系的模型的情况下:
var entity = DS.Model.extend({
category: belongsTo('category')
});
当加载此实体时,Ember Data会针对属于此实体实例的特定类别向API发出另一个请求。
我是否错过了启用缓存的内容?