Ich hoffe es wird jemand anderem helfen.
Die obige Frage besagt, dass der Wert des Abfrageparameters benötigt wird, nachdem die Seite umgeleitet wurde, und wir können davon ausgehen, dass der Snapshot-Wert (die nicht beobachtbare Alternative) ausreichend wäre.
Niemand hier erwähnte über snapshot.paramMap.get aus der offiziellen Dokumentation .
this.route.snapshot.paramMap.get('id')
Fügen Sie vor dem Senden Folgendes in die Komponente zum Senden / Umleiten ein:
import { Router } from '@angular/router';
dann wie folgt umleiten ( hier dokumentiert ):
this.router.navigate(['/heroes', { id: heroId, foo: 'foo' }]);
oder einfach:
this.router.navigate(['/heroes', heroId ]);
Stellen Sie sicher, dass Sie dies in Ihrem Routing-Modul hinzugefügt haben, wie hier dokumentiert :
{ path: 'hero/:id', component: HeroDetailComponent }
Und schließlich in Ihrer Komponente, die den Abfrageparameter verwenden muss
Importe hinzufügen ( hier dokumentiert ):
import { Router, ActivatedRoute, ParamMap } from '@angular/router';
ActivatedRoute injizieren
(Die Dokumentation importiert auch switchMap und injiziert Router und HeroService. Sie werden jedoch nur für eine beobachtbare Alternative benötigt. Sie werden NICHT benötigt, wenn Sie eine Snapshot-Alternative wie in unserem Fall verwenden.)
constructor(
private route: ActivatedRoute
) {}
und erhalten Sie den Wert, den Sie benötigen ( hier dokumentiert ):
ngOnInit() {
const id = this.route.snapshot.paramMap.get('id');
}
HINWEIS: WENN SIE EINEM ROATING-MODUL EINEM FUNKTIONSMODUL HINZUFÜGEN (WIE IN DER DOKUMENTATION ANGEZEIGT), STELLEN SIE SICHER, DASS IN APP.MODULE.ts DAS ROUTING-MODUL VOR dem AppRoutingModule (oder einer anderen Datei mit App-Routen auf Root-Ebene) IN IMPORTS: [] KOMMT. Andernfalls werden keine Funktionsrouten gefunden (da sie nach {path: '**', redirectTo: '/ not-found'} kommen würden und Sie nur eine nicht gefundene Nachricht sehen würden).
@RouteConfig
für diesepath
?