ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# [Defining Providers in Shared Modules in Angular](https://alligator.io/angular/providers-shared-modules/) 目的:为了防止一个模块中通常应该作为是单例的服务,可能会被提供多次,特别是对于延迟加载的模块。 通过在模块的类中定义一个静态`forRoot`方法,该方法返回一个实现了`angular`的 `ModuleWithProviders` 接口的对象 示例代码: ```ts ... export class SharedModule { static forRoot(): ModuleWithProviders { return { ngModule: SharedModule, providers: [ SomeService ] }; } } ``` 最后,在任何功能模块中,我们可以简单地导入共享模块而不使用`forRoot`,我们将访问不需要在提供服务的共享管道和指令。