Angular 6 + MVC, загружает все результаты действий при инициализации модуля, даже если он не используется
В моем модуле MasterModule я загружаю MyModule с помощью LazyLoading. Во всех моих компонентах я использую результат действия MVC как templateUrl в декораторе @Component({}).
Когда MyModule инициализируется, все мои запросы результатов действий попадают на мой сервер и загружают все виды.
Мой вопрос: есть ли способ решить эту проблему, означает создавать запросы результатов действий только тогда, когда компонент отображается в DOM.
По умолчанию NgModule инициализирует все компоненты, указанные в объявлениях (что создает http get-запрос для всех результатов действия).
- Основные маршруты--
export const MasterRoutes: Routes = [
{ path: 'Master/Landing', component: MasterPageComponent },
{ path: 'sample', loadChildren: () => require('es6-promise-loader!../Modules/MyModule')('MyModule') }
];
- Мастер модуль--
@NgModule({
imports: [
RouterModule.forRoot(MasterRoutes),
BrowserModule
],
declarations: [
MasterPageComponent
],
bootstrap: [
MasterPageComponent
]
})
export class MasterModule { }
--MyRoutes--
export const MyRoutes = [
{
path: 'Add',
component: MyComponent
}]
--MyModule--
@NgModule({
imports: [
RouterModule.forChild(MyRoutes)
],
declarations: [
MyComponent,
RightComponent,
LeftComponent,
MainComponent
]
})
export class MyModule { }