为什么我们不需要将内置的Angular Services添加到提供者中,但它仍然有效



我正在学习一个教程,它使用"标题";以内置服务为例。

将服务导入组件Ts文件

import { Title } from '@angular/platform-browser';

然后注入构造函数并设置标题。

constructor(private title: Title){ this.title.setTitle('My Title'); }

如果我运行应用程序,它运行良好,并且我不会得到任何";没有标题的提供者";错误,因为它根本没有提供到任何位置。但这违反了Angular Service的规则。

您能解释一下,当添加到提供者时,内置服务是否是例外吗?

如文档所述,Title服务在应用程序的root中提供:https://angular.io/api/platform-browser/Title#provided-在中

这意味着Title服务是用providedIn配置定义的。InjectableprovidedIn提供了一种通过DI提供依赖关系的替代方法,如果使用了这种方法,则无需通过模块配置中的providers阵列提供服务。请在此处查看有关providedIn的更多详细信息:https://angular.io/guide/providers#providing-a服务

相关内容

  • 没有找到相关文章

最新更新