首页 文章

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

提问于
浏览
0

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

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

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

它基本上与注入的实例相同 . 如何在角度2或更高版本中实现此类用例 .

1 回答

  • 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) {
    }
    

    PRIVATE CONSTRUCTOR TO MAKE SURE THAT IT CAN'T BE CALLED FROM OUTSIDE

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

相关问题