Угловая маршрутизация с параметрами в дочернем модуле с отложенной загрузкой? Не удается сопоставить какие-либо маршруты, генерируемые каждый раз

#angular #angular-routing #angular7 #angular-module

#угловая #угловая маршрутизация #angular7 #angular-module

Вопрос:

У меня есть отложенный загруженный модуль, который по умолчанию имеет значение SuperUserComponent внутри этого компонента у меня есть переключение навигации с помощью ngSwitchCase между 4-5 дочерними компонентами. Поскольку я использую это с nativescript, мне нужно иметь отдельный модуль маршрутизации для всего этого модуля маршрутизации.

Внутри моего основного модуля маршрутизации у меня есть:

  {
    path: 'super-user',
    loadChildren: './super-user/super-user.module#SuperUserModule',
    pathMatch: 'full'
  },
  

Внутри собственного дочернего модуля маршрутизации модуля у меня есть:

 const routes: Routes = [
  {
    path: ':resource',
    component: SuperUserComponent,
    pathMatch: 'full'
  }
];
  

Переключатели для switchase следующие:

    <mat-button-toggle
        [routerLink]="['/super-user', 'manage-users']"
        value="manage-users"
      >
        Users
      </mat-button-toggle>
  

И на серверной части я прослушиваю этот параметр каждый раз, когда загружаю основной компонент:

 this.paramSubscription = this.route.paramMap.subscribe(params => {
      const newValue = params.get('resource');
      this.superUserMenu = newValue;
    });
  

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

Ответ №1:

Провел небольшое исследование, все, что вам нужно, это изменить ваш модуль mai nrouting

  {
    path: 'super-user',
    loadChildren: './super-user/super-user.module#SuperUserModule',
    pathMatch: 'prefix'
 }
  

или просто удалите эту строку pathMatch: 'prefix' , если вам это не нужно. Я думаю, вы просто заставляете angular находить маршрут, который заканчивается на ‘super-user’, но он, естественно, не может этого сделать.

Комментарии:

1. Ах, я, честно говоря, не знаю точно, как вообще работает этот параметр pathMatch, просто каждый раз, когда у меня возникали проблемы с маршрутизацией всех потоков / руководств, которые я мог, ifnd предложил бы сделать это «полным», поэтому после того, как я перестал задавать вопросы. В итоге я сделал что-то вроде ./super-user/:resource/super-user.module#... , а затем из моего меню кнопка приведет вас непосредственно к одному из подресурсов с значением по умолчанию. Я также попробую использовать ваш вариант!