Nehmen wir an, ich habe diese Angular 2 Service:Angular 2 Pass Parameter auf Service Constructor
@Injectable()
class Demo {
constructor(private instanceSpecificString: string) {
}
}
Beachten Sie, dass Konstruktor eine Instanz spezifische Zeichenfolge akzeptiert. Was ich damit meine ist, dass ich diesen Dienst mehrmals instanziieren möchte und jedes Mal, wenn er instanziiert wird, möchte ich eine andere Zeichenfolge basierend auf dem Kontext übergeben, in dem der Dienst instanziiert wird.
Wie mache ich das?
P.S. string
wird als Beispiel verwendet, aber der Parameter könnte leicht vom Typ number
oder boolean
oder sogar irgendeine Art von Konfiguration object
sein.
Was passiert, wenn mein Dienst eine transitive Abhängigkeit von der Komponente ist? Kann ich 'provide' noch verwenden? – battmanz
Angular2 verwendet ein hierarchisches Injektorsystem, dh wenn ein Injektor eine Instanz Ihres Dienstes erstellt, sucht er nach dem nächstgelegenen Anbieter für das Token, das von Ihrem Dienst benötigt wird. Wenn es keine Definition im Injektor findet, wird es den Elterninjektor prüfen, bis zum Wurzelinjektor. https://angular.io/docs/ts/latest/guide/hierarchical-dependency-injection.html – awiseman
Woher kommt die Funktion "provide()"? – OddDev