如何在同一服务的角度组件中注入多个服务实例?

时间:2018-01-25 22:09:14

标签: angular angular5

如何将多个服务实例注入到同一服务的角度组件中?

例如 - 我的代码中有dbService,我想要调用这个dbService实例两次,并在构造函数中使用两个不同的值初始化两个服务。但是当我在组件中创建两个实例时,如

构造函数(私有db1:dbService,私有db2:dBservice){}

基本上是同一个实例被注入。如何在角度2+或更高版本中实现此类用例。

1 个答案:

答案 0 :(得分:2)

您可以在服务中创建一个返回该服务实例的方法。像这样的东西 -

public static instance: dbService;
public static getInstance(http: Http): dbService {
    if (!dbService.instance) {
        dbService.instance = new dbService(http);
    }
    return dbService.instance;
}
private constructor(public http: Http) {
}

私人建筑师确保可以从外面打电话

然后在您的组件中,您可以根据需要多次调用 getInstance()方法。