メインモジュールといくつかのサブモジュールがあります。そして、それらの間の自明ではないルーティングを指定したいと思います。
サブモジュール内でサブモジュールのルートを定義することをお勧めします。例えば:
@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
別のルーティングを介してアクセスしたい他のモジュールがあります。たとえば、CityModule
under/otherstuff/city/create
および /otherstuff/city/list` です。
私の質問:
- 独自のルーティングでモジュールをインポートし、そのルートをプレフィックスにすることは可能ですか?
- さらに: 最終的な (接頭辞付きの) ルートにとらわれずに 2 つのサブモジュール間のリンクを作成する方法はありますか?
アップデート
受け入れられた答えは、それを行うための最良の方法です。モジュール内にルートを作成し、それらを外部に登録します。したがって、ルートを変更できます。たとえば、ルートにプレフィックスを付けたり(これは私が望んでいたことです)、ガードを定義したり、オーバーライドまたはフィルタリングしたりできます。