我正在阅读角度2修订版47第250页上的ng-book
,并且有以下段落:
当我们将类本身放入这样的提供者列表中时:
providers: [ MyService ]
这告诉Angular我们想要在MyService时提供MyService的单例实例 注射。因为这种模式很常见,所以这个类本身就是 下面的简写表示法,等效配置:
providers: [ { provide: MyComponent, useClass: MyComponent } ]
这是一个错字,应该是什么意思:
providers: [
{ provide: MyService, useClass: MyService }
]
答案 0 :(得分:2)
是的,它是一样的。
如果传递给provide
和useClass
的类型相同,则相当于只传递type
。
只是一个提示。提供组件(MyComponent
)通常没有意义。
答案 1 :(得分:2)
这是错字,因为你不能将组件用作提供者,这里是official docs
Provider类并提供对象文字我们编写了提供程序 像这样的数组:
providers: [Logger]
这实际上是一个简写表达 使用提供者对象文字与两个提供者注册 属性:
[{ provide: Logger, useClass: Logger }]
第一个是令牌 作为定位依赖值和注册的关键 提供者。
第二个是提供者定义对象,我们可以将其视为一个 用于创建依赖关系值的配方。有很多方法可以 创建依赖值...以及编写配方的许多方法
答案 2 :(得分:0)
是的,两者都是一样的。 当您编写 providers: [MyService] angular 时,会将其扩展为 [{ provide: MyService, useClass: MyService}] 其中第一个参数 provide: MyService 将 作为依赖注入令牌工作,它将作为定位“MyService”的关键 和第二个参数 useClass: MyService 它将从 现有服务类 MyService