Perutean sudut di halaman yang sama

Aug 19 2020

Saya ingin menggunakan perutean sudut di halaman yang sama dengan semua komponen yang sama apakah itu / frontpage atau / frontpage / param1 / param2 / param3. Tetapi hanya memperbarui komponen anak saya dengan parameter param1 param2 param3 ..

Saya memiliki komponen halaman depan yang memiliki banyak komponen anak-anak (dan anak-anak mereka).

Saya membangun sedemikian rupa sehingga tidak ada perubahan URL dan itu hanya / halaman depan tetapi saya ingin menambahkan kueri dan parameter saya ke url saya yang memperbarui anak-anak saya.

Tapi saya tidak benar-benar mengerti bagaimana melakukan ini.

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'
    },
  },

Di mana saya menambahkan /: param1 /: param2 /: param3 ??

Terima kasih!

Jawaban

itspers Aug 19 2020 at 06:32

Tidak ada parameter opsional dalam perutean - cukup tulis rute kedua. Jika karena alasan aneh Anda membutuhkan banyak anak di sana - ekstrak ke beberapa variabel dan berikan di dalamnya. Rute hanya disediakan konfigurasi melalui token, bukan masalah besar.

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

Dan FrontpageComponenthanya berlangganan params dan melihat apakah mereka ada di sini atau tidak.