I’ve ran into an issue that I didn’t know about. At first, I thought this particular issue is a bug. It’s not but a feature of Angular 4.
The Problem
Lazy loaded components are unable to see parent-components that are already loaded.
Solution
We need to create a module that houses all the required components we need and import them in modules that require said components.
Loader.module.ts
Create a LoaderModule that has the components you need on lazy loaded components.
import { NgModule } from '@angular/core';
import { RouterModule } from "@angular/router";
import { SidebarComponent } from "./sidebar.component";
@NgModule({
imports: [RouterModule],
exports: [SidebarComponent],
declarations: [SidebarComponent],
providers: [],
})
export class LoaderModule { }
Update lazy.module.ts
Update your lazy loading module to add the following:
import { NgModule } from '@angular/core';
import { LoaderModule } from "./loader.module";
@NgModule({
declarations: [],
imports: [LoaderModule]
})
export class LazyModule {}
Whenever you need to use the shared components from LoaderModule, just import it into the module files that require the components.
Sources: StackOverflow
