私は、ルーティング構成を含むサブngModule(フィーチャモジュール)を「プラグイン」しようとしています(RouterModule.forChild()
)を親ngModuleに追加します。
レイジーローディングを使用する場合、子モジュールの「プラグイン」を指定するには、loadChildren
親モジュールのルート設定のキー。
例:
export const parentModuleRouteConfig = [{
path: 'myfeaturemodule',
loadChildren: '/app/child.module'
}];
実際、私は怠惰な読み込みを使用することを迷惑しない。
どのようにして、特定の経路でサブモジュールで指定されたルート設定を 'プラグ'(または使用)するようルータに指示できますか?
loadChildrenを使用して同期的にロードすることはできます。いくつかの例がありますこのgithub問題。
import { ChildModule } from '/app/child.module';
export const parentModuleRouteConfig = [{
path: 'myfeaturemodule',
loadChildren: () => ChildModule
}];
事前ロード戦略を定義して、すべてのモジュールを事前にロードするようにAngularに指示することができます。
import { ...., PreloadAllModules } from '@angular/router'
@NgModule({
....
imports: [
RouterModule.forRoot(arrayOfYourRoutes, { preloadingStrategy: PreloadAllModules })
]
一部のモジュールのみをプリロードする場合は、カスタム戦略を定義することもできます。これを行う良い方法は、これをチェックしてください:角度のある文書の例
あなたのコメントの後に編集して、あなたのモジュールを自分自身で説明してください。
@NgModule(
imports: [RouterModule.forChild(routesOfFeatureModule)], //use forChild instead of forRoot
exports: [RouterModule]
)
export class MyFeatureRoutingModule{} //define routing in a separate module of your feature, everything related to routing go there. This way, you doen't polute your main FeatureModule file. Re-export RouterModule to be able to use router directives in your FeatureModule just by importing MyFeatureRoutingModule
@NgModule(
...
imports: [MyFeatureRoutingModule] //import routing of your feature module
)
export class MyFeatureModule{}
@NgModule(
...
imports: [MyFeatureModule] // import your feature module
)
export class AppModule{}
@NgModule(...., imports: [MyFeatureModule]) export class AppModule{}
- Melou