【问题标题】:Ember application only shows blank page on errors, cannot render 'error' actionEmber 应用程序仅在错误时显示空白页面,无法呈现“错误”操作
【发布时间】:2016-12-29 06:23:34
【问题描述】:

我正在尝试为我的 Ember 应用程序实现错误处理,尤其是在 API 端点关闭时。

我尝试使用 application 路由中的 error() 操作来呈现错误模板 (error.hbs)。渲染会导致内部错误(Cannot read property 'push' of undefined, see line in Ember.

要呈现错误页面,想法是使用以下操作:

    error() {
        this.render('error', {
            into: 'application' // does not seem to exist
        });
    }

如何强制 Ember 至少渲染一些东西?

我使用 Ember 2.7.0

【问题讨论】:

  • 你在应用程序路由模型钩子中遇到错误吗?..你可以试试下面error(error, transition) { if (error) { return this.transitionTo('error-page'); } }
  • @kumkanillam 转换到另一个页面(不使用后端)也将导致 undefined 错误,但在 Ember 中的另一个位置。基本上同样的问题。

标签: ember.js


【解决方案1】:

Cannot read property 'push' of undefined 的原因,我猜您的 application.hbs 本身由于任何应用程序路由模型挂钩(beforeModel、model、afterModel)中的错误而未呈现。 error.hbs 如果未重新渲染,则无法将其渲染到应用程序中。

所以从应用程序路由中删除error操作并定义将自动呈现的application-error.hbs模板文件

Ember-twiddle

【讨论】:

  • 不知道application-error.hbs(谢谢!)。错误不会出现在应用程序挂钩中,而是出现在嵌套路由中。一段时间后我可能会将此标记为答案,看看是否有其他解决方案。
猜你喜欢
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 2017-07-16
  • 1970-01-01
  • 2014-06-25
  • 1970-01-01
  • 2019-10-14
相关资源
最近更新 更多