С Angular 7.0.3
(но я полагаю, что это произошло после версии 2?), Если во время выполнения возникает неперехваченная ошибка, приложение прерывается и вызывает перенаправление на базовый URL, указанный в index.html
.
- Это ожидаемое поведение по умолчанию от маршрутизатора?
- Если так, как я могу предотвратить это перенаправление?
В идеалеЕсли возникнет ошибка, я бы хотел оставить пользователя на существующей странице и позволить ему продолжить навигацию по приложению без необходимости начинать с базового URL.
Я использую ленивые функциональные модули и у меня есть письменные сервисы, подобные тем, которые можно найти в этом руководстве , с выделенным компонентом error.component.ts
и обоими:
{ path: "error", loadChildren: () => ErrorModule }
и
{ path: "**", loadChildren: () => ErrorModule }
в базовом файле app-routing.module.ts
.
В случае чрезвычайно сокращенного теста этот пример из учебника связан, соответственно ловит ошибка клиента but предоставляет только представление error.component.ts
с возможностью возврата на домашнюю страницу.
РЕДАКТИРОВАТЬ: 11/27/2018
Мой проект настроен на использование Just In TimeКомпиляция , а не AOT.Если, например, я построил проект с использованием ng build --watch --fork-type-checker
и удаляю закрывающий </div>
из любого шаблона компонента, приложение будет сообщать об ошибке и перенаправлять пользователя обратно на базовый URL при переходе к URL этого компонента.
Есть ли способ отловить эти типы ошибок без с использованием AOT и без перенаправления пользователя обратно на базовый URL?