Ember Model未在findAll上更新

时间:2017-05-31 06:02:46

标签: ember.js ember-data

我有一个模型最初加载的页面,但是在后续链接到同一路径时,它没有正确更新。我使用的是Ember数据存储。

为了举例,我的页面是食物清单。我有水果,蔬菜,肉类等的导航。用户点击它并链接 - 将它们发送到foods.food路线。

模型是

model(params) {
    return RSVP.hash({
      foodName: params.foodName,
      foodItems: this.store.findAll('food-items',  {adapterOptions: {foodName: params.foodName}} )
    });
}

在我的afterModel(食物,过渡)

food.foodItemsArr = food.foodItems.filter((foodKey) => {
  return (foodKey.get('foodName') === food.foodName);
});

然后在我的hbs模板中

{{#each model.foodItemsArr as |key|}}
    ...
{{/each}}

当用户最初点击食物类型列表中的(水果)时,它会按原样加载水果。然后当他们点击另一种类型(蔬菜)之后,food.foodItemsArr给出的长度为0.然后,如果他们点击第三种食物(肉)然后再回到蔬菜,那么蔬菜会出现。几乎就好像数据存储在afterModel触发之前没有被模型足够快地更新。我已经检查过,每次调用时服务器都会正确过滤和返回数据。救命啊!

1 个答案:

答案 0 :(得分:2)

感谢@torazaburo指出我正确的方向。

我需要添加{reload:true} foodItems:this.store.findAll('food-items',{adapterOptions:{foodName:params.foodName},reload:true})

强制模型重新加载。