Routing kątowy na tej samej stronie

Aug 19 2020

Chcę użyć routingu kątowego na tej samej stronie ze wszystkimi tymi samymi komponentami, niezależnie od tego, czy jest to / frontpage, czy / frontpage / param1 / param2 / param3. Ale zaktualizuję tylko mój komponent podrzędny za pomocą parametrów param1 param2 param3.

Mam komponent frontpage, który zawiera kilka komponentów podrzędnych (i ich dzieci).

Budowałem w taki sposób, że nie było zmiany adresu URL i była to tylko strona główna / frontpage, ale chcę dodać moje zapytania i parametry do mojego adresu URL, który aktualizuje moje dzieci.

Ale tak naprawdę nie rozumiem, jak to zrobić.

app.routing.ts

  {
    path: '',
    redirectTo: 'frontpage',
    pathMatch: 'full',
  },
  {
    path: '404',
    component: P404Component,
    data: {
      title: 'Page 404'
    }
  },
{
    path: '', // honestly I just realized this was here lol. I can probably take this out right? lol.. It was part of the base I am using.
    component: DefaultLayoutComponent,
    data: {
      title: 'Home'
    },
    children: [
      {
        path: 'frontpage',
        loadChildren: () => import(etcetc).then(m => m.FrontpageModule)
      },

frontpage-routing.module.ts

  {
    path: '',
    component: FrontpageComponent,
    data: {
      title: 'Frontpage'
    },
  },

Gdzie dodać /: param1 /: param2 /: param3 ??

Dzięki!

Odpowiedzi

itspers Aug 19 2020 at 06:32

W routingu nie ma opcjonalnych parametrów - wystarczy napisać drugą trasę. Jeśli z jakiegoś dziwnego powodu potrzebujesz tam dużo dzieci - wyodrębnij je do jakiejś zmiennej i przekaż do każdej z nich. Trasy są po prostu dostarczane za pośrednictwem tokena, nic wielkiego.

  const toneOfChildren = [...];
  {
    path: '',
    component: FrontpageComponent,
    children: toneOfChildren  
  },
  {
    path: ':param1/:param2/:param3',
    component: FrontpageComponent,
    children: toneOfChildren  
  },

I po FrontpageComponentprostu zasubskrybuj parametry i zobacz, czy są tutaj, czy nie.