В моем модуле, MasterModule, я загружаю MyModule, используя LazyLoading.Во всех моих компонентах я использую результат действия MVC как templateUrl в декораторе @Component ({}).
Когда инициализируется MyModule, все мои запросы на результат действия попадают на мой сервер и загружают все представления.
Мой вопрос: есть ли способ решить эту проблему, означает создавать запросы результатов действий только тогда, когда компонент отображается в DOM.
По умолчанию NgModule инициализирует все компоненты, указанные в объявлениях (что создает запрос http для всех результатов действия).
- Основные маршруты -
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 { }