Прямо сейчас с вашим кодом, angular маршрутизатор, попытается заменить адрес дырочного маршрута (/ home) на /login.
Чтобы установить адрес для redirectTo, Вы не можете использовать /
измените вторую строку
...
{ path: 'home', component: HomeLayoutComponent, children: [
{path: '', redirectTo: '/allQuestions', pathMatch: 'full'},
...
на эту
{path: '', redirectTo: 'allQuestions', pathMatch: 'full'},
Исправлен код ошибки
const routes: Routes = [
{
path: '', component: MainLayoutComponent, children: [
{path: '', redirectTo: 'login', pathMatch: 'full'},
{path: 'login', component: LoginFormComponent},
{path: 'registration', component: RegistrationFormComponent}
]
},
{ path: 'home', component: HomeLayoutComponent, children: [
{path: '', redirectTo: 'allQuestions', pathMatch: 'full'},
{path: 'allQuestions', component: AllQuestionsComponent},
{path: 'addQuestion', component: AddQuestionComponent},
], canActivate: [AuthenticationGuard]
}
];
Следующий шаг
После того, как вы исправили этот код, убедитесь, что измените способ загрузки компонентов и подумайте об использовании отложенной загрузки.
Я имею в виду, например, что для целей авторизации у вас может быть AuthModule, этот модуль может иметь свой собственный auth-router. module.ts, который содержит информацию о маршруте для модуля auth (например, / signin и / signup). Таким образом, модули будут загружаться, только если маршрут, который идет туда, называется!