Итак, я столкнулся с известной проблемой угловой маршрутизации "именованная розетка с лениво загруженным модулем" . Эта проблема, похоже, закрыта, и этот парень предоставил плункеру рабочее решение, за которым я следил. Однако я все еще получаю сообщение об ошибке и не могу понять природу этой проблемы
Ошибка: невозможно сопоставить ни один маршрут. Сегмент URL:
Я пытался использовать pathMatch: 'full' с разными маршрутами перенаправления на разные компоненты, но в конце всегда получал одну и ту же ошибку.
Я застрял уже на пару часов, поэтому решил задать вопрос здесь. Где моя проблема и что мне не хватает?
Моя настройка
app.routing.ts:
const routes: Routes = [
{
path: '',
loadChildren: 'app/home/home.module#HomeModule',
},
{
path: 'admin',
loadChildren: 'app/admin/admin.module#AdminModule',
},
{
path: 'data',
loadChildren: 'app/data/data.module#DataModule',
},
{
path: '**',
redirectTo: ''
}
];
app.component.html
<app-header></app-header>
<router-outlet></router-outlet>
data.routing-module.ts
const routes: Routes = [
{
path: 'summary',
component: SummaryComponent,
canActivate: [AuthGuard],
},
{
path: 'management/:id',
component: DataComponent,
canActivate: [AuthGuard],
children: [
{
path: 'activities',
component: ActivitiesComponent,
outlet: 'activities',
},
{
path: 'researches',
component: ResearchesComponent,
outlet: 'researches',
}
]
},
{
path: 'review/:id',
component: InfoComponent,
canActivate: [AuthGuard],
},
];
data.component.html
<mat-drawer-container class="docs-viewer-container">
<mat-drawer position='start' [mode]='mode'>
<router-outlet name="activities"></router-outlet>
</mat-drawer>
<mat-drawer position='end' [mode]='mode'>
<router-outlet name="researches"></router-outlet>
</mat-drawer>
<mat-drawer-content>
...
// content
...
</mat-drawer-content>
</mat-drawer-container>
Таким образом, целевая страница для модуля данных является итоговым компонентом после того, как пользователь щелкнул ссылку для навигации по маршруту URL, выглядит так: 'path/data/summary?params'
. Summary.component имеет функцию навигации
onActivitySelection(event) {
this.queryParams.offset = 0;
this.queryParams.limit = 25
this.router.navigate([{
outlets: {
'activities': '/data/management/' + event.id + '/activities'
}
}],
{
queryParams: this.queryParams
})
}
Как видите, маршрут перенаправления должен быть «/ data / management /: id / activity». Но ошибка говорит о том, что этот маршрут нельзя найти.
Так кто-нибудь может мне помочь с моей проблемой?