我需要在我的组件中使用其他服务。 看来我应该能够这样做
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [firstService, additionalService]
})
但它不起作用。
答案 0 :(得分:3)
如果没有更多代码,很难理解您是如何尝试实施服务的。 Angular Components通过组件类的构造函数中的依赖注入来使用服务,如下所示:
@Component({
selector: 'page-home',
templateUrl: 'home.html',
providers: [firstService, additionalService]
})
export MyClassComponent {
constructor(private svc1: firstService, private svc2: additionalService} {
}
method1() {
this.svc1.someMethod();
}
}
每次将其注册为提供者时,都会创建该服务的实例。在应用程序的模块级别而不是在组件中提供服务是更好的做法。服务创建为单例,然后在需要的地方注入。有关模块和服务提供商的更多信息,请访问here in the Angular docs。