Ошибка: не удается сопоставить ни один маршрут.Сегмент URL: '?' - PullRequest
0 голосов
/ 22 января 2019

Я пытаюсь получить доступ к под-маршруту под-маршрута, как вы можете видеть в файле skill-missions-init-routing.module.ts, первый маршрут работал, но второй не мог получить доступ, каждыйКогда я пытаюсь получить доступ к маршруту, у него появляется эта ошибка.

Интересно, какой будет способ доступа ко второму маршруту без выполнения этой ошибки

skill-missions-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).)

enter image description here

    ApplyRedirects.prototype.noMatchError = function (e) {
        return new Error("Cannot match any routes. URL Segment: '" + e.segmentGroup + "'");
    };

enter image description here

Ну, я пытался оставить наиболееподробно, если у кого-то есть еще вопросы и они могут мне помочь, я буду ждать.

1 Ответ

0 голосов
/ 22 января 2019

, чтобы быстро решить эту проблему, но это не то, что я хотел, я использовал его таким образом

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)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...