Angular如何将服务注入组件?如果没有订购,它怎么办?
例如,以下组件:
export class MyComponent implements OnInit {
constructor(
private activatedRouter: ActivatedRoute,
private serverService: ServerService,
) { }
}
与此组件具有相同的效果:
export class MyComponent implements OnInit {
constructor(
private serverService: ServerService,
private activatedRouter: ActivatedRoute,
) { }
}
答案 0 :(得分:2)
注入器是一个应用程序范围的容器,容纳创建的依赖项。此注入器将尽可能尝试重用这些依赖项。注入器利用提供程序创建新的依赖项。要回答您的问题,当组件依赖于服务时,它将检查注入器以查找该服务的现有实例。如果注射器没有注射器,它将使用set provider创建一个。如果组件依赖于多个服务,它将解析并返回每个服务。后,每个服务都可以作为构造函数的参数调用。除非未提供其中一项服务,否则构造函数中的服务顺序不会产生任何影响。正如Makoto评论的那样,这是关于依赖注入的具体细节。您可以在此处找到更多信息: