同じページの角度ルーティング

Aug 19 2020

/ frontpageまたは/ frontpage / param1 / param2 / param3であるかどうかに関係なく、すべて同じコンポーネントを使用して同じページで角度ルーティングを使用したいと思います。しかし、子コンポーネントをparam1 param2param3パラメーターで更新するだけです。

多数の子(およびその子)コンポーネントを含むフロントページコンポーネントがあります。

URLが変更されず、/ frontpageだけであるように構築していましたが、クエリとパラメーターをURLに追加して、子を更新したいと思います。

しかし、私はこれを行う方法を本当に理解していません。

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

/:param1 /:param2 /:param3はどこに追加しますか?

ありがとう!

回答

itspers Aug 19 2020 at 06:32

ルーティングにはオプションのパラメータはありません。2番目のルートを書き込むだけです。奇妙な理由でそこにたくさんの子が必要な場合は、それを変数に抽出して、それぞれの中に渡します。ルートはトークンを介して設定で提供されるだけで、大したことはありません。

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

そして、FrontpageComponentパラメータをサブスクライブして、それらがここにあるかどうかを確認します。