Ermittelt Eltern-Route-Parameter von einer Lazy-Loaded-Route-Komponente

8

Ich versuche, die Eltern-Route-Parameter in einer Lazy-Loaded-Route-Komponente zu bekommen, aber activatedRoute.parent.params scheint nicht zu funktionieren? Ich habe ein Snippet, das tatsächlich funktioniert, aber es beinhaltet die Verwendung einer 'magischen' Array-Indexnummer, um den Wert abzurufen ....

Warum ist das der Fall und gibt es eine cleaner -Methode, in der ich keinen Array-Wert ( this.activatedRoute.pathFromRoot[1] ) abrufen muss?

Ich habe die folgende Route, in der ich ein Modul lazy lade:

parent.route

%Vor%

Dann habe ich in der Standardkomponente für child.module folgendes:

untergeordnete Komponente

%Vor%

Warum kann ich this.activatedRoute.parent.params nicht verwenden, um id param zu erhalten?

    
Zze 27.08.2017, 06:53
quelle

2 Antworten

1

Der beste Weg, dies ohne 'magic' array index number zu erreichen, ist die Verwendung eines Dienstes.

  • hole die Params oder die URL in den Eltern und stelle sie in einen Service.
  • Greifen Sie über die Servicevariable in der Komponente Lazy loaded vom Service auf die Parameter zu. Etwas wie dieses

ParentComponent

%Vor%

Service

%Vor%

Jetzt in der untergeordneten Lazyloaded-Komponente können Sie die Parameter mit service.getparams()

abrufen     
Rahul Singh 22.09.2017 07:19
quelle
0

Nun können Sie auf die übergeordneten Router-Daten zugreifen. Es scheint ein bisschen seltsam in einigen Projektstrukturen, aber Sie können es tun, wenn Sie Ihre Router-Struktur kennen.

%Vor%     
Okan Aslankan 16.01.2018 13:35
quelle

Tags und Links