Ich habe eine Komponente, die den Service MetricsService deklariert. Dieser Dienst benötigt sowohl HTTP-Module als auch zwei Zeichenfolgen, die den Host und den zu verwendenden Authentifizierungsschlüssel definieren.
Der Metrikservice ist wie folgt:
%Vor%Die Komponente, die es verwendet, ist wie folgt geschrieben:
%Vor%Meine Frage ist, wie soll ich den Komponentenkonstruktor schreiben, so dass das Ganze funktioniert, einschließlich der Übergabe des Hosts und des Schlüssels (aber nicht die Weitergabe des http)?
Hinweis: Der aktuell geschriebene Code wird nicht kompiliert.
Um genauer zu sein, würde ich erwarten, dass die Komponente app-abhängige Daten in etwa wie folgt bereitstellt:
%Vor%Aber wenn das funktioniert, wie kann man http weitergeben?
AKTUALISIEREN NACH VORGESCHLAGENER LÖSUNG:
%Vor%In der Komponente:
%Vor%Im Konstruktor lautet das Protokoll wie folgt (Wert wird nicht übergeben):
%Vor%wo es 'abc' und 'efg' zeigen soll.
Aber ich frage mich, ob es ein Problem mit der Komponente, die DataViz-Komponente verwenden. In dieser Komponente wurden die folgenden Informationen übergeben:
%Vor%Wie ich möchte, dass das Tag den Host und den Schlüssel optional voreinstellt:
%Vor% Sie können die Parameter optional machen, indem Sie @Optional()
(DI) und ?
(TypeScript) und @Inject(somekey)
für primitive Werte hinzufügen, die nicht als Providerschlüssel
Wenn sie angegeben werden, werden sie übergeben, andernfalls werden sie ignoriert, aber DI kann weiterhin MetricsService
einfügen.
Dies ist ein gängiges Rezept, das insbesondere in dieser Frage beschrieben wird . Es sollte ein Dienst sein, der die Konfiguration enthält:
%Vor%Wenn es geändert werden muss, kann es für das gesamte Modul oder für eine bestimmte Komponente überschrieben oder erweitert werden:
%Vor% Es besteht keine wirkliche Notwendigkeit, in diesem Fall MetricsConfig
zu einer Klasse zu machen. Es kann auch ein OpaqueToken-Wertanbieter sein. Aber eine Klasse kann bequem erweitert werden, es ist einfacher zu injizieren und bietet bereits eine Schnittstelle zum Tippen.
Tags und Links service constructor http angular components