1

我需要在我的组件中使用附加服务。看来我应该可以这样做

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

但它不起作用。

4

1 回答 1

3

如果没有更多代码,很难理解您是如何尝试实现服务的。Angular 组件通过组件类的构造函数中的依赖注入来使用服务,如下所示:

@Component({
    selector: 'page-home',
    templateUrl: 'home.html',
    providers: [firstService, additionalService]
})
export MyClassComponent {
    constructor(private svc1: firstService, private svc2: additionalService} {
    }

    method1() {
        this.svc1.someMethod();
    }
}

每次将服务注册为提供者时,都会创建一个服务实例。在应用程序的模块级别而不是在组件中提供服务是一种更好的做法。服务被创建为单例,然后在需要的地方注入。更多关于模块和服务提供者的信息可以在 Angular 文档中找到。

于 2017-06-11T05:24:55.847 回答