4

私は、ルーティング構成を含むサブngModule(フィーチャモジュール)を「プラグイン」しようとしています(RouterModule.forChild())を親ngModuleに追加します。

レイジーローディングを使用する場合、子モジュールの「プラグイン」を指定するには、loadChildren親モジュールのルート設定のキー。

例:

export const parentModuleRouteConfig = [{
    path: 'myfeaturemodule',
    loadChildren: '/app/child.module'
}];

実際、私は怠惰な読み込みを使用することを迷惑しない

どのようにして、特定の経路でサブモジュールで指定されたルート設定を 'プラグ'(または使用)するようルータに指示できますか?

2 답변


12

loadChildrenを使用して同期的にロードすることはできます。いくつかの例がありますこのgithub問題

import { ChildModule } from '/app/child.module';

export const parentModuleRouteConfig = [{
    path: 'myfeaturemodule',
    loadChildren: () => ChildModule
}];


1

事前ロード戦略を定義して、すべてのモジュールを事前にロードするように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{}


  • ありがとうございます、私は事前ロード戦略について知りませんでした。しかし、この機能は明らかに遅延ロード戦略を改善することを可能にしますが、この時点では遅延ロードをまったく使用したくありません。私は自分のフィーチャー・モジュールを自分で説明したいと思っています。 (ルータの設定を含む)、親モジュールによってブートストラップ時にロードされます。 - Clement
  • [OK]をクリックすると、アプリモジュールにインポートすることで、フィーチャモジュールを読み込む標準的な方法を使用できないのはなぜですか?@NgModule(...., imports: [MyFeatureModule]) export class AppModule{} - Melou
  • それはまさに私がやっていることです。しかし、私のフィーチャーモジュールには専用のルータ設定が含まれています。 @NgModuleは、エクスポートされたすべてのコンポーネントとディレクティブをフィーチャモジュールからロードしますが、フィーチャモジュールのルーティング設定をロードするにはどうすれば&プラグ&それらはルータの経路hierachy内にありますか?それがこの質問のポイントです! - Clement
  • これは私が試したものですが、これはうまくいかないのですが、どのように動くのですか?ルータはどのようにして'マウント' routesOfFeatureModuleで定義されたすべてのルート?ここで、'は、ルータのパス階層 - Clement

リンクされた質問


関連する質問

最近の質問