나는 라우팅 구성을 포함하는 하위 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