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{}


  • 감사합니다. 사전로드 전략에 대해 알지 못했습니다. 하지만이 기능을 사용하면 게으른로드 전략을 세분화 할 수 있지만이 시점에서는 지연로드를 전혀 사용하지 않아도됩니다. 필자의 기능 모듈을 & # 39; 자체 설명하고 싶습니다. & # 39; (그것의 라우터 구성 포함) 부모 모듈에 의해 부트 스트랩에서로드 될 수 있습니다. - Clement
  • 그렇다면 왜 앱 모듈에서 가져 오기 기능 모듈을로드하는 표준 방법을 사용할 수 없습니까?@NgModule(...., imports: [MyFeatureModule]) export class AppModule{} - Melou
  • 그게 내가하는 일이야. 하지만 내 기능 모듈에는 전용 라우터 구성이 포함되어 있습니다. @NgModule은 피쳐 모듈에서 내 보낸 모든 구성 요소 및 지시문을로드하지만 피쳐 모듈 라우팅 위치를로드 할 수있는 방법은 & # 39; 플러그 & # 39; 그들은 라우터 경로 hierachy 내에서? 그것이이 질문의 핵심입니다! - Clement
  • 이것은 내가 시도한 것이며 작동하지 않습니다 ... 어떻게 작동합니까 ??? 라우터가 어디서 & # 39; 마운트 & # 39; routesOfFeatureModule에 정의 된 모든 경로? & # 39;는 어디에서 라우터 경로 계층 구조의 - Clement

연결된 질문


관련된 질문

최근 질문