无论如何显示错误路线

时间:2016-04-16 09:39:18

标签: javascript ember.js ember-data

我有下一个模型的路线:

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

1 个答案:

答案 0 :(得分:1)

当模型钩子返回的promise失败时,会触发error事件。因此,您可以在动作的错误钩子中处理它,以便:

actions: {
    error(error, transition) {
       if (error) {
          ...
       }
    }
}
Ember指南中的

Here it is。它清楚地描述了。

如果您的comments承诺失败,但recipe失败,我可以建议您将recipecomments承诺放入不同的路线。例如,父路由中为recipe,子路由中为comments。所以当comments承诺发生错误时;您可以显示您的食谱相关模板,但不会显示评论相关模板。