我是Ember的新手,并且无法让Ember / Ember Data将API调用的结果缓存到Rails后端。
我找到了这个主题:Ember-Data .find() vs .all() - how to control cache?
哪个回答了一些关于find()vs all()的问题,使用它我找到了一个看起来很难看的解决方法,我想知道是否有比这更好,更简洁的方法:
import Ember from 'ember';
export default Ember.Route.extend({
model: function () {
if (this.store.all('facility').get('content.length')) {
return this.store.all('facility');
} else {
return this.store.find('facility');
}
}
});
答案 0 :(得分:0)
几点说明:
您不应该在模型钩子中缓存数据。使用#link-to
或类似API传递缓存数据。
如果您没有通知系统告诉Ember资源已被更改,您根本不应该缓存数据。请注意,您的应用可能会运行很长时间。
您也可以同时进行这两项工作。
以下是使用缓存数据并在后台更新它们的示例。 (未经测试)
import Ember from 'ember';
export default Ember.Route.extend({
model: function () {
var currentData = this.store.all('facility');
this.store.find('facility'); // Ember automatically picks new changes
return currentData;
}
});