在 angular docs FAQ 部分它指出,“与启动时加载的模块的提供者不同,延迟加载模块的提供者是模块范围的。” 关联
这里的“模块范围”是指模块还是扩展为包括属于该模块的所有组件?
我问的原因是因为我有一个延迟加载的模块,其中包含 2 个属于它的组件。我在模块中注册了一项服务,但由于某种原因,每个组件都获得了该服务的不同实例。
为了在我的延迟加载模块中提供 LazyModuleService 并将该服务的范围限定为延迟加载模块及其组件,我需要更改什么?请包括所需的任何其他文件。我试图做一个通用的例子来帮助其他可能发现这个问题的人。
延迟加载模块:
import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { Component1 } from './component1.component';
import { Component2 } from './component2.component';
import { LazyModuleService } from './lazy-module.service';
@NgModule({
imports: [
CommonModule,
],
declarations: [
Component1,
Component2,
],
})
export class LazyLoadedModule { }