Я хотел бы сослаться на опцию providedIn
на модуль Angular, предоставляющий как деклараторы, так и зависимости. Я создал дополнительный модуль SharedModule
, который будет служить подмодулем для ленивого модуля LazyModule
, чтобы его можно было использовать в качестве «якоря» для ленивого сервиса, который я хочу предоставить (CounterService
в моем случае). Я следовал этому руководству , чтобы добиться этого, но явно делал что-то не так. Кроме того, я сделал небольшую схему, но, пожалуйста, взгляните на StackBlitz , чтобы увидеть полный пример.
Eager Part Lazy Loaded Module
+----------------------------------------------+ +--------------------------------------+
|Routes: | | @NgModule({ |
| | | imports: [SharedModule] |
|{ | | } |
| path: 'lazy', | | export class LazyModule {} |
| loadChildren: './lazy/lazy.module#LazyModule| | |
|} | | |
+----------------------------------------------+ | SharedModule |
| +----------------------------------+ |
| |@NgModule({ | |
| | declarations: [SharedComponent],| |
| | exports: [SharedComponent] | |
| |}) | |
| |export class SharedModule {} | |
| +----------------------------------+ |
| |
| |
| LazyService |
| +----------------------------------+ |
| |@Injectable({ | |
| | providedIn: SharedModule | |
| |}) | |
| |export class CounterService { | |
| | counter = 0; | |
| |} | |
| +----------------------------------+ |
| |
+--------------------------------------+