【问题标题】:Injecting service singleton instance to another service without constructor在没有构造函数的情况下将服务单例实例注入另一个服务
【发布时间】:2017-11-30 16:09:26
【问题描述】:

我有:

  • BaseService 将用作父类
  • UtilService 用于实用功能
  • AService 是 BaseService 的子类(AService 扩展自 BaseService)
  • BService 也是 BaseService 的子类

我想将 UtilService 单例实例注入 BaseService 没有 使用构造函数 ( constructor(baseService: BaseService ){} ) 因为如果没有,AServiceBService 都需要在调用 UtilService 时将 UtilService 单例实例作为参数传递> 的构造函数( super(arguments) ),这显然是一个多余的步骤。 所以我想知道是否有其他方法可以做到这一点,而无需在 AService/BService 构造函数的超级调用中传递 UtilService 单例实例。 提前致谢。

【问题讨论】:

    标签: angular


    【解决方案1】:

    不知道会不会是singelton,但是可以使用注入服务

    constructor(private inj: Injector) { }
    ....where you need..
    const customService= this.inj.get(CustomService)
    

    【讨论】:

    • 虽然我在模块提供程序中添加了 UtilService,但我仍然收到此错误:ERROR 错误:未捕获(承诺):错误:没有 UtilService 提供程序
    • 您在 app.module.ts 的模块提供程序中添加 UitlService?您的 UtilService 就像 @Injectable() 导出类 UtilsService ?
    猜你喜欢
    • 2021-02-25
    • 1970-01-01
    • 2019-10-22
    • 2017-07-05
    • 2020-11-24
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多