angular - Angular2 中的提供者是什么?

标签 angular angular2-providers

在 Angular2 组件配置中,providers 是我们可以指定的键之一。这些提供程序是如何定义的以及它们的用途是什么?

@Component({
  ..
  providers: [..],
  ..
})

注意:

Angular2 文档逐渐成熟,但仍然稀少。它目前将 providers 定义为:

An array of dependency injection providers for services that the component requires.

这个递归定义不是很有用。一个更详细的例子解释会很有帮助。

最佳答案

提供者通常是单例(一个实例)对象,其他对象可以通过依赖注入(inject) (DI) 进行访问。

如果您计划多次使用一个对象,例如,Http 服务在不同的组件中,您可以请求该服务的同一个实例(重用它)。您可以在 DI 的帮助下通过提供对 DI 为您创建的同一对象的引用来做到这一点。

@Component){
  ..
  providers: [Http]
}

..而不是每次都创建新对象:

@Component){}
class Cmp {
  constructor() {
    // this is pseudo code, doens't work
    this.http = new Http(...options);
  }
}

这是一个近似值,但这是 Dependency Injection 背后的一般思想- 让框架处理可重用对象的创建和维护...Provider 是 Angular 对这些可重用对象(依赖项)的术语。

关于angular - Angular2 中的提供者是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37867503/

相关文章:

Angular 2弹出窗口

html - 如何让两个单词排成一行

jwt - 没有 AuthHttp 提供者! Angular2-Jwt 提供程序问题

angular - NullInjectorError : No provider for t

node.js - 如何正确启动 Angular Universal 到实时服务器

Angular2 - 输入键首先执行(单击)表单上的功能

node.js - Angular <app-root> 在 Node View 中无法识别

Angular2 模块 : How can i import a service from another module

angular - 覆盖组件,比如服务?