Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: '?'
Я пытаюсь получить доступ к под-маршруту под-маршрута, как вы можете видеть в файле skill-missions-init-routing.module.ts, первый маршрут работал, но второй не мог получить доступ, каждый раз, когда я пытаюсь для доступа к маршруту у него есть эта ошибка.
Интересно, какой будет способ доступа ко второму маршруту без выполнения этой ошибки
навыки-миссия-Init-routing.module.ts
const routesSkills: Routes = [
{
path: 'skills-missions-init',
children: [
{
path: ':id', component: SkillsMissionsInitComponent,
children: [
{
path: ':view', component: ViewMissionComponent, outlet: 'list',
children: [
// This is the route I'm trying to access
{ path: 'get-ready-for-mission', component: GetReadyForMissionComponent, outlet: 'list' },
]
}
]
}
]
},
];
@NgModule({
imports: [RouterModule.forChild(routesSkills)],
exports: [RouterModule]
})
export class SkillsMissionsInitRoutingModule { }
модель так и осталась
@NgModule({
declarations: [
ViewMissionComponent,
GetReadyForMissionComponent
],
imports: [
CommonModule,
SkillsMissionsInitRoutingModule
],
exports: [
SkillsMissionsInitRoutingModule,
GetReadyForMissionComponent
],
bootstrap: [SkillsMissionsInitComponent],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class SkillsMissionsInitModule { }
Этот маршрут выполнялся по желанию
Маршрут выглядит так.
http://10.0.3.18:4200/#/skills-missions-init/lead-by-example/(list:11)
/**
* redirectViewMission
*/
public redirectViewMission(id: number, key: string) {
return this.router.navigate(['/skills-missions-init', key, { outlets: { list: [id] } }], { relativeTo: this.routeActivated });
}
Я пытался получить доступ к маршруту с помощью этого фрагмента кода, но он всегда отображает ошибку
/**
* getReadyForMission
*/
public getReadyForMission() {
console.log(this.competency, this.behavior);
return this.router.navigate(
[
'skills-missions-init',
this.competency,
{ outlets: { list: [this.behavior, 'get-ready-for-mission'] } }
],
{ relativeTo: this.routeActivated }
);
}
ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: "skill-missions-init / lead-by-example" Ошибка: невозможно сопоставить ни один маршрут. Сегмент URL: 'skill-missions-init/lead-by-example' в ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js:2434) в CatchSubscriber.selector (router.js:2415) в CatchSubscriber.push../node_modules/rxjs/_esm5/internal/operator /catchError.js.CatchSubscriber.error (catchError.js:34) в MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js:80) в MapSubscriber.push../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber.error (Subscriber.js:60) в MapSubscriber.ush../node_modules/rxjs/_esm5/internal/Subscriber.js.Subscriber._error (Subscriber.js: 80) в MapSubscriber.push../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subscriber.error. js: 60) в MapSubscriber.push../ node_modules / rxjs / _esm5 / internal / Subscriber.js.Subscriber._error (Subscriber.js: 80) в MapSubscriber.push../ node_modules / rxjs / _esm5 / internal / Subscriber. js.Subscriber.error (Subscriber.js: 60) на TapSubscriber.push../node_modules/rxjs/_esm5/internal/operator /tap.js.TapSubscriber._error (tap.js:61) в resolPromise (zone.js:814) в resolPromise (zone.js:771) в zone.js:873 в ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421) в Object.onInvokeTask (core.js:14051) в ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420) в Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188) в файле pipeMicroTaskQueue (zone.js:595) в ZoneTask.push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask [как invoke] (zone.js:500) в invokeTask (zone.js:1540).)
ApplyRedirects.prototype.noMatchError = function (e) {
return new Error("Cannot match any routes. URL Segment: '" + e.segmentGroup + "'");
};
Ну, я постарался оставить самое подробное, если у кого-то есть еще вопросы, и они могут мне помочь, я буду ждать.
1 ответ
Чтобы решить эту проблему быстро, но это не то, что я хотел, я использовал это таким образом
const routesSkills: Routes = [
{
path: 'skills-missions-init',
children: [
{
path: ':id', component: SkillsMissionsInitComponent,
children: [
{ path: ':view', component: ViewMissionComponent, outlet: 'list' },
{ path: ':view/get-ready-for-mission', component: GetReadyForMissionComponent, outlet: 'list' },
]
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routesSkills)],
exports: [RouterModule]
})
export class SkillsMissionsInitRoutingModule { }
/**
* getReadyForMission
*/
public getReadyForMission() {
return this.router.navigate(
[
'skills-missions-init',
this.competency,
{ outlets: { list: [this.behavior, 'get-ready-for-mission'] } }
],
);
}
Ссылка осталась такой же.
http://10.0.3.18:4200/#/skills-missions-init/be-digital/(list:14/get-ready-for-mission)