2

我正在阅读ng-bookangular 2 revision 47 page 250 并且有以下段落:

当我们将类本身放入提供者列表时,如下所示:

providers: [ MyService ] 

这告诉 Angular,每当 MyService 被注入时,我们都想提供一个 MyService 的单例实例。因为这种模式很常见,所以类本身就是以下等效配置的简写符号:

providers: [
    { provide: MyComponent, useClass: MyComponent }
]

这是一个错字吗?意思应该是:

providers: [
    { provide: MyService, useClass: MyService }
]
4

3 回答 3

2

是的,它是一样的。当传递给provideand的类型useClass相同时,就相当于只传递type.

只是一个提示。提供组件 ( MyComponent) 通常没有意义。

于 2017-01-12T14:24:49.457 回答
2

这是错字,因为你不能使用组件作为提供者,这里是官方文档

Provider 类和提供对象字面量我们这样编写 providers 数组:

providers: [Logger]

这实际上是使用具有两个属性的提供者对象文字的提供者注册的简写表达式:

[{ provide: Logger, useClass: Logger }]

第一个是用作定位依赖值和注册提供者的键的令牌。

第二个是提供者定义对象,我们可以将其视为创建依赖值的秘诀。有很多方法可以创建依赖值……还有很多方法可以编写配方

于 2017-01-12T14:30:47.950 回答
0

是的,两者都是一样的。当您编写提供程序时:[MyService] 角度将其扩展为 [{ provide: MyService, useClass: MyService}] 其中第一个参数提供:MyService将用作依赖注入令牌,它将用作定位“MyService”和第二个参数useClass: MyService它将从现有服务类 MyService 创建依赖关系

于 2021-07-15T02:20:22.957 回答