6

メインモジュールといくつかのサブモジュールがあります。そして、それらの間の自明ではないルーティングを指定したいと思います。

サブモジュール内でサブモジュールのルートを定義することをお勧めします。例えば:

@NgModule({
    imports: [
        /*...*/
        RouterModule.forChild([
            { path: 'country', redirectTo: 'country/list' },
            { path: 'country/list', component: CountryListComponent },
            { path: 'country/create', component: CountryCreateComponent },
            /*...*/
        ])
    ],
    declarations: [/*...*/],
    exports: [
        RouterModule,
    ],
})
export class CountryModule {}

このモジュールを独自の内部ルーティングでインポートしたいのですが、ルーティング全体をプレフィックスにしたいと考えています。

const appRoutes = [
    { path: '', component: HomeComponent },
    /*... (basic routes)*/
];

@NgModule({
    imports: [
        /*...*/
        RouterModule.forRoot(appRoutes),
        CountryModule, // <- how to make its routing prefixed??
    ],
    declarations: [
        /*...*/
        AppComponent,
    ],
    bootstrap: [ AppComponent ]
})
export class AppModule {}

この設定により、次のルートが作成されます: /country/country/listなどですが、次のように接頭辞を付けたいと思います:

  • /settings/country
  • /settings/country/list
  • /settings/country/create

別のルーティングを介してアクセスしたい他のモジュールがあります。たとえば、CityModuleunder/otherstuff/city/createおよび /otherstuff/city/list` です。

私の質問:

  1. 独自のルーティングでモジュールをインポートし、そのルートをプレフィックスにすることは可能ですか?
  2. さらに: 最終的な (接頭辞付きの) ルートにとらわれずに 2 つのサブモジュール間のリンクを作成する方法はありますか?

アップデート

受け入れられた答えは、それを行うための最良の方法です。モジュール内にルートを作成し、それらを外部に登録します。したがって、ルートを変更できます。たとえば、ルートにプレフィックスを付けたり(これは私が望んでいたことです)、ガードを定義したり、オーバーライドまたはフィルタリングしたりできます。

4

2 に答える 2