2017-11-30 3 views
1

ich habe:Injecting Service Singleton-Instanz zu einem anderen Dienst ohne Konstruktor

  • BaseService, die als übergeordnete Klasse verwendet werden würde
  • UtilService für Utility-Funktionen verwendet wird
  • Aservice Kind Klasse von BaseService (AService erstreckt sich von BaseService)
  • BService ist auch Kinderklasse BaseService

I UtilService Singleton Instanz BaseService aber ohne mit Konstruktor (Konstruktor (baseService: BaseService) {}) injizieren wollen, denn wenn nicht, beide AService und BService müssen übergeben UtilService Singleton Instanz als Argument beim Aufruf UtilService 's Konstruktor (Super (Arg ment), was offensichtlich ein überflüssiger Schritt ist. So möchte ich wissen, ob es eine andere Möglichkeit gibt, dies zu tun, ohne UtilService Singleton Instanz in AService/BService Konstruktors Super Call. Vielen Dank im Voraus.

Antwort

0

Ich weiß nicht, ob es Singelton sein wird, aber Sie können einen Dienst mit

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

injizieren Obwohl ich UtilService in Modul-Anbieter hinzugefügt, ich habe immer noch diese Fehlermeldung: ERROR Fehler: Uncaught (in Versprechen) : Fehler: Kein Provider für UtilService –

+0

Sie fügen den UitlService in Modulanbietern in app.module.ts hinzu? Dein UtilService ist wie @Injectable() Exportklasse UtilService? – Eliseo

+0

ja, nicht funktionieren: (( –

Verwandte Themen