我想知道新的角服务装潢师

@Injectable({
    providedIn: 'root'
})

与延迟加载协同工作.这意味着,如果我有一个延迟加载的模块,其中有一个根目录中提供的服务,那么这将包括应用程序基代码中的特定服务,即aka.应用程序根块.js或者当我延迟加载该模块时,它是否仍会延迟加载该服务,然后使其成为一个全局单例.

有关提供的信息

https://angular.io/guide/ngmodule-faq

推荐答案

是的,在这种情况下,它只是延迟加载模块/块的一部分.当使用providedIn: 'root'时,Angular编译器将自动找出完美的方法:

  1. 该服务将在应用程序范围内作为单例提供,无需将其添加到模块的提供者数组(如Angular<;=5).
  2. 如果服务仅在延迟加载的模块中使用,则该模块将延迟加载该服务
  3. 如果从未使用过它,它将不会包含在构建中(树抖动).

有关更多信息,请考虑阅读documentationNgModule FAQs

顺便说一句:

  1. 如果您不想使用应用程序范围的单例,请使用提供程序的组件array.
  2. 如果您想限制范围,以便其他开发人员不会在特定模块之外使用您的服务,请使用Provider 的NgModulearray.

Angular相关问答推荐

Goto锚定在嵌套容器中,具有溢出自动

HTTP Get请求未发送到提供的URL

如何在@angular/material-experimental中使用自定义调色板-Expeded $connect.Color.primary将成为有效的M3调色板

图像未显示在视图屏幕上-Angular 投影

ANGLING HTTP.GET()返回包含数据的数组

从Angular 前端访问ASP.NET Core 8 Web API时出现CORS错误

在以下位置升级到Angular 16 Break Sharepoint广告:This._history.replaceState不是函数

ngx-http-client 在 Angular 16 中已弃用

如何以Angular 显示动态视图模型

Angular 2 中的 ChangeDetectionStrategy.OnPush 和 Observable.subscribe

单选按钮的Angular2 Reactive Forms formControl

如何在两个模块之间共享服务 - @NgModule 在Angular 而不是在组件之间?

Angular 5 中服务的生命周期是什么

Angular CLI 自定义 webpack 配置

无法绑定到matDatepicker,因为它不是 input的已知属性

如何提高 Angular2 应用程序的加载性能?

formGroup 需要一个 FormGroup 实例

如何在 Angular CLI 的构建时插入内部版本号或时间戳

在 Angular 2 中对 observable 进行单元测试

@viewChild 不工作 - 无法读取未定义的属性 nativeElement