首页 > 解决方案 > Angular - 未捕获的错误导致重定向回基本 URL

问题描述

使用Angular 7.0.3(但我相信这是从版本 2 开始发生的?),如果在运行时发生未捕获的错误,应用程序会中断并导致重定向回index.html.

  1. 这是路由器的预期默认行为吗?
  2. 如果是这样,我怎样才能防止这种重定向发生?

理想情况下,如果遇到错误,我希望将用户保留在现有页面上,并允许他们继续浏览应用程序,而不必从基本 URL 开始。

我正在使用延迟加载的功能模块,并编写了类似于本教程中使用的专用error.component.ts组件的服务,并且两者都有:

{ path: "error", loadChildren: () => ErrorModule }

{ path: "**", loadChildren: () => ErrorModule }

在基础app-routing.module.ts文件中。

对于一个极其简化的测试用例,链接教程中的这个示例适当地捕获客户端错误,但只为error.component.ts视图提供了返回主页的选项。

编辑:2018 年 11 月 27 日

我的项目设置为使用即时编译而不是 AOT。例如,如果我使用构建项目ng build --watch --fork-type-checker并从任何组件模板中删除了关闭</div>,则在导航到该组件的 URL 时,应用程序将出错并将用户重定向回基本 URL。

有没有办法在使用 AOT 且不将用户重定向回基本 URL 的情况下捕获这些类型的错误?

标签: angulartypescriptangular-routingangular-router

解决方案


推荐阅读