Ember 模型未在 findAll 上更新
Ember Model not updating on findAll
我有一个模型最初加载的页面,但在随后的 link-to 到同一路线时,它没有正确更新。我正在使用 Ember 数据存储。
举个例子,我的页面是一个食物列表。我有一个包含水果、蔬菜、肉类等的导航。用户单击此按钮,然后 link-将它们发送到 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 触发之前模型没有足够快地更新数据存储一样。我已经检查过,数据在每次调用时都被服务器正确过滤和返回。求助!
感谢@torazaburo 为我指明了正确的方向。
我需要将 { reload: true }
添加到
食品:
this.store.findAll('food-items', {adapterOptions: {foodName: params.foodName}, reload: true} )
强制重新加载模型。
我有一个模型最初加载的页面,但在随后的 link-to 到同一路线时,它没有正确更新。我正在使用 Ember 数据存储。
举个例子,我的页面是一个食物列表。我有一个包含水果、蔬菜、肉类等的导航。用户单击此按钮,然后 link-将它们发送到 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 触发之前模型没有足够快地更新数据存储一样。我已经检查过,数据在每次调用时都被服务器正确过滤和返回。求助!
感谢@torazaburo 为我指明了正确的方向。
我需要将 { reload: true }
添加到
食品:
this.store.findAll('food-items', {adapterOptions: {foodName: params.foodName}, reload: true} )
强制重新加载模型。