我有下一个模型的路线:
model: function model(params) {
this.store.unloadAll('comment');
this.get('adapterContext').setRecipeId(params.recipe_id);
return new _ember['default'].RSVP.hash({
recipe: this.store.findRecord('recipe', params.recipe_id),
comments: this.store.findAll('comment')
});
}
在某些情况下,对/comments
的请求失败。但我仍然希望显示当前路线(只是有一些视觉变化)。现在我只是在控制台中出错并转换到路由失败。我怎样才能改变它?
UPD:
/comments
从服务器返回500错误。在控制台中我得到ember.debug.js:30877 Error: Adapter operation failed
。
答案 0 :(得分:1)
当模型钩子返回的promise失败时,会触发error
事件。因此,您可以在动作的错误钩子中处理它,以便:
actions: {
error(error, transition) {
if (error) {
...
}
}
}
Ember指南中的Here it is。它清楚地描述了。
如果您的comments
承诺失败,但recipe
失败,我可以建议您将recipe
和comments
承诺放入不同的路线。例如,父路由中为recipe
,子路由中为comments
。所以当comments
承诺发生错误时;您可以显示您的食谱相关模板,但不会显示评论相关模板。