HeroService注入的过程差不多是这样的:

如果注入器还没有HeroService,它怎么知道该如何创建一个呢?
简单点说,我们必须先用注入器(injector)为HeroService注册一个提供商(provider)。ts文件下载 提供商用来创建或返回服务,通常就是这个服务类本身(相当于new HeroService())。
我们可以在模块中或组件中注册提供商。
但通常会把提供商添加到上,以便在任何地方都使用服务的同一个实例。
src/app/app.module.ts (module providers)
providers: [
BackendService,
HeroService,
Logger
],
或者,也可以在@Component元数据中的providers属性中把它注册在组件层:
src/app/hero-list.component.ts (component providers)
@Component({
selector: 'app-hero-list',
templateUrl: './hero-list.component.html',
providers: [ HeroService ]
})
把它注册在组件级表示该组件的每一个新实例都会有一个服务的新实例。
需要记住的关于依赖注入的要点是:
依赖注入渗透在整个 Angular 框架中,被到处使用。
注入器 (injector)是本机制的核心。
注入器负责维护一个容器,用于存放它创建过的服务实例。
注入器能使用提供商创建一个新的服务实例。
提供商是一个用于创建服务的配方。
把提供商注册到注入器。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-55834-7.html
脑子烧坏了
认同和学习几千年传承下来的中华文明