在组件类中使用多个提供程序的语法是什么?

时间:2017-06-10 22:45:26

标签: angular typescript angular-services angular2-providers

我需要在我的组件中使用其他服务。 看来我应该能够这样做

@Component({
    selector: 'page-home',
    templateUrl: 'home.html',
    providers: [firstService, additionalService]
})

但它不起作用。

1 个答案:

答案 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