【发布时间】:2021-03-15 02:10:31
【问题描述】:
只是想确保我理解 @Injectable(providedIn: 'root') 的语义。
在 Angular 6 之前,如果我们从 NPM 导入一个包含服务的模块,我们将在我们的应用程序模块中声明该模块,以便整个应用程序都可以访问该服务。像这样的:
import { SomeNPModule } from '@ngx/SomeNPModule';
@NgModule({
imports: [
BrowserModule,
SomeNPModule
]
})
export class AppModule {}
现在我们可以注入模块提供的SomeService,因为我们已经导入了模块。使用Angular 6,将SomeNPModule导入AppModule的需要被删除,因为我们在服务本身上使用@Injectable(providedIn: 'root),并且当注释运行时它会自动使服务在root注入容器中可用?
更新
所以我们有了答案,但我认为它是部分完成的,如果我们想要配置服务,这通常是通过服务模块上的 forRoot 方法完成的......就像通过Router。所以假设我们不想配置服务,我们需要做的就是注入它,但是如果我们想要一个配置的服务,我们需要遵循Router 模式。如果我在 cmets 中犯了任何错误,请纠正我。
【问题讨论】:
标签: angular typescript progressive-web-apps angular-providers angular-dependency-injection