Angular 2-7中的PROVIDER,INJECTOR和SERVICE有什么区别?

时间:2018-06-14 09:37:21

标签: angular typescript dependency-injection dependencies

有人可以用简单的词语向我解释这些差异。任何有或没有代码的实时示例也可以。

1 个答案:

答案 0 :(得分:4)

服务是Angular中的一个类,它使用Angular依赖注入器注册。在下面的示例中,StudentService类是一项服务。

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

@Injectable({
  providedIn: 'root',
})
export class StudentService {
  constructor() { }
}

Angular注入器负责创建服务实例并将其注入类中。通常注射器在幕后工作。下面的代码显示了显式创建的注入器。

constructor(private injector: Injector) { }

以下代码将服务直接注入主机组件。

injector.get(Service)

提供商告诉注入者如何创建服务。如果没有提供者,注入器将不知道它负责注入服务,也不能创建服务。通常,在模块或组件元数据中提及提供程序。例如,如果组件想要调用服务“FileWriter”,组件应该在元数据中提及应该由注入器创建和注入此服务。

providers: [FileWriter]