我正在学习一个教程,它使用"标题";以内置服务为例。
将服务导入组件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
配置定义的。Injectable
的providedIn
提供了一种通过DI提供依赖关系的替代方法,如果使用了这种方法,则无需通过模块配置中的providers
阵列提供服务。请在此处查看有关providedIn
的更多详细信息:https://angular.io/guide/providers#providing-a服务