Alle Tutorials und Antworten, die ich gefunden habe, zeigen nur, wie man eine Variable von der Elternkomponente zur Kindkomponente übergibt, aber was ist diese Kindkomponente im Routeroutlet und nicht direkt in der Elternvorlage?
z.B.:
Hauptkomponente
%Vor%In diesem Beispiel enthält die Hauptkomponentenvorlage einen Router-Ausgang, wo die Kindkontaktkomponente gerendert wird. Wie kann ich jedoch einen variablen "num" -Wert in der untergeordneten Komponente in einem Routeroutlet von der Eltern-App-Komponente erhalten? / p>
Ich bin gerade über diese Frage gestolpert, hier habe ich ähnliche Probleme gelöst.
Ich würde einen Service nutzen, um das zu lösen. Dann können alle untergeordneten Elemente und das übergeordnete Element die Eigenschaft festlegen, und die Änderungen werden für alle Abonnenten übernommen. Zuerst würde ich einen Dienst mit einem privaten BehaviorSubject erstellen, der einen öffentlichen Getter und Setter hat, um ReplaySubject einzukapseln und nur Observable zurückzugeben:
%Vor%Der Grund für die Verwendung von "BehaviorSubject (1)" besteht darin, den Anfangswert auf 1 zu setzen, damit etwas abonniert werden kann.
In den Eltern onInit würde ich den Standardwert der Eigenschaft (num) sehen:
%Vor%In einer oder mehreren untergeordneten Komponenten ist es möglich, Änderungen zu abonnieren:
%Vor%Und wenn ein Kind oder ein Elternteil die Eigenschaft aktualisiert:
%Vor%Alle Abonnenten werden davon erfahren.
Momentan können Sie keine Verbindungen zu Komponenten herstellen, die vom Router hinzugefügt wurden. Verwenden Sie stattdessen einen gemeinsam genutzten Dienst (es gibt eine Unmenge von Beispielen hier auf SO), um Daten von oder zu der hinzugefügten Komponente zu übertragen oder Ereignisse zu abonnieren.
Siehe auch diese Ausgabe Ссылка besonders diesen Kommentar Ссылка
Wenn Ihre Daten unveränderbar sind, können Sie RouteData verwenden.
%Vor%Dies kann nützlich sein, um einige Konfigurationsoptionen zu übergeben, die Sie in untergeordneten Routen nicht fest codieren möchten. Wenn Sie jedoch erwarten, dass sich Daten ändern, benötigen Sie eine andere Methode.
Tags und Links angular components router