我有一个页面,模型最初是加载的,但在随后的链接到相同的路线,它没有正确更新。我使用的是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}}
当用户最初单击(水果)在食物类型列表上,它会加载水果。当他们点击不同的类型时(vegetable)之后,food.foodItemsArr会将长度设为0。然后,如果单击第三个食物(肉类)然后再回到蔬菜,蔬菜就出现了。这几乎就像是在afterModel触发之前,数据存储没有被模型更新得足够快。我已经检查过了,数据正在被过滤,并在每次调用时由服务器正确返回。
1条答案
按热度按时间wwtsj6pe1#
感谢@torazaburo为我指明了正确的方向。
我需要将
{ reload: true }
添加到foodItems中:以强制重新加载模型。