Angular 笔记02 依赖注入

Angular 官网教程

依赖注入令牌

当使用提供者配置注入器时,就会把提供者和一个 DI 令牌关联起来。
注入器维护一个内部令牌-提供者映射表,当请求一个依赖项时就会引用它。令牌就是这个映射表的键。

1-1

在简单的例子中,依赖项的值是一个实例,而类的类型则充当键来查阅它。

heroService: HeroService;

1-2

当你编写的构造函数中需要注入基于类的依赖项时,其行为也类似。
当你使用 HeroService 类的类型来定义构造函数参数时,
Angular 就会知道要注入与 HeroService 类这个令牌相关的服务。

constructor(heroService: HeroService)

1-3

当组件或服务声明某个依赖项时,该类的构造函数会以参数的形式接收那个依赖项。
通过给这个参数加上 @Optional() 注解,你可以告诉 Angular,该依赖是可选的

import { Optional } from '@angular/core';

constructor(@Optional() private logger?: Logger) {
  if (this.logger) {
    this.logger.log(some_message);
  }
}