Как создать необязательный аргумент роутера в angular 7 - PullRequest
0 голосов
/ 21 марта 2019

У меня есть конфигурация маршрутизатора, показанная ниже.

const routes: Routes = [
  {
    path: 'Registration',
    component: RegisterComponent,
    children: [
      { path:'',component:ProfileComponent},
      { path: 'Dependent', component: DependentComponent },
      { path: 'Matrimony', component: MatrimonyComponent },
      { path: 'Subscription', component: MagazinesubscriptionComponent },
      { path: 'Donation', component: DonationComponent }
        ]
  },
  {
    path: 'Profile',
     component: ProfilelistComponent
    //component: VoteprofileComponent
  }
];

Этот же маршрутизатор я хочу использовать для редактирования.Имею ввиду, как показано ниже.

const routes: Routes = [
  {
    path: 'Registration/:id',
    component: RegisterComponent,
    children: [
      { path:'',component:ProfileComponent},
      { path: 'Dependent', component: DependentComponent },
      { path: 'Matrimony', component: MatrimonyComponent },
      { path: 'Subscription', component: MagazinesubscriptionComponent },
      { path: 'Donation', component: DonationComponent }
        ]
  },
  {
    path: 'Profile',
     component: ProfilelistComponent
    //component: VoteprofileComponent
  }
];

Есть ли в любом случае угловой, не повторяя полную конфигурацию маршрута, которую я могу достичь.

Значит, я могу указать параметр как необязательный?

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Я не знаю, как сделать параметр необязательным.В зависимости от того, чего вы пытаетесь достичь, вы можете использовать конкретную строку, которую вы можете обнаружить в параметре id (Регистрация / новая или Регистрация / 678A6).

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

const registrationRouteConfig = {
  component: RegisterComponent,
  children: [
    { path:'',component:ProfileComponent},
    { path: 'Dependent', component: DependentComponent },
    { path: 'Matrimony', component: MatrimonyComponent },
    { path: 'Subscription', component: MagazinesubscriptionComponent },
    { path: 'Donation', component: DonationComponent }
  ]
}

const routes: Routes = [
   { path: 'Registration', ...registrationRouteConfig },
   { path: 'Registration/:id', ...registrationRouteConfig },
   { path: 'Profile', component: ProfilelistComponent }
]
0 голосов
/ 21 марта 2019

Есть способ (я его не тестировал) Если вы делаете модуль и добавляете нижеуказанные элементы в этот модуль

  { path:'',component:ProfileComponent},
  { path: 'Dependent', component: DependentComponent },
  { path: 'Matrimony', component: MatrimonyComponent },
  { path: 'Subscription', component: MagazinesubscriptionComponent },
  { path: 'Donation', component: DonationComponent }

Затем вы можете использовать его в app.routing как

{   path: 'Registration',   loadChildren: 'pathToYourModule#ModuleName'  },
{   path: 'Registration/:id',   loadChildren: 'pathToYourModule#ModuleName'  },
{   path: 'Profile',   component: ProfilelistComponent }
...