我在控制器中有以下代码:
ingredients: function() {
var self = this;
this.store.findAll('ingredient').then(function() {
var ingredients = self.get('model').get('ingredientsWithQuantities').map(function(item) {
return {
name: self.store.peekRecord('ingredient', item.ingredientId).get('name'),
quantity: item.quantity
};
});
self.set('ingredients', ingredients);
});
}.property('model.ingredientsWithQuantities')
它是与其中一条路线相关的计算属性。如果先前在某处加载 ' 模型,它可以正常工作。但是如果它第一次加载,当调用then
函数时,商店中没有数据。
我希望findAll
仅在获取数据后才会调用then
。我怎么处理这个?
更新
当我将shouldReloadAll() { return true; }
添加到我的应用程序RestAdapter时,它可以正常工作,除了一件事。即使数据存在,它实际上也会重新加载。但是在用户会话期间我只需要这种类型的一个请求。
有可能实现下一个行为吗?
当商店中没有数据时 - 然后加载数据和调用函数
当商店中存在数据时 - 然后只需调用函数
答案 0 :(得分:1)
delete
将返回商店中的所有this.store.findAll('ingredient')
,然后它会通过对后端的请求更新它,或者我认为它是如何工作的但我不确定为什么它不能那样工作。
解决方案是使用ingredients
,它会向this.store.query
提出请求。
示例:
backend