Od ActivatedRoute
can be reused, ActivatedRouteSnapshot
jest niezmienna obiekt reprezentujący konkretnej wersji z ActivatedRoute
. Eksponuje wszystkie te same właściwości co ActivatedRoute
jako wartości zwykłe, podczas gdy ActivatedRoute
udostępnia je jako obiekty obserwowalne.
Oto komentarz w realizacji:
export class ActivatedRoute {
/** The current snapshot of this route */
snapshot: ActivatedRouteSnapshot;
Jeżeli router ponownie wykorzystuje komponent i nie tworzy nowej trasy włączona, będziesz mieć dwie wersje ActivatedRouteSnapshot
dla tego samego ActivatedRoute
. Załóżmy, że mamy następującą konfigurację routingu:
path: /segment1/:id,
component: AComponent
Teraz przejdź do:
/segment1/1
Będziesz miał param w activatedRoute.snapshot.params.id
jak 1
.
Teraz przejdź do:
/segment1/2
Będziesz miał param w activatedRoute.snapshot.params.id
jak 2
.
Widać to poprzez wdrożenie następujące:
export class AComponent {
constructor(r: ActivatedRoute) {
r.url.subscribe((u) => {
console.log(r.snapshot.params.id);
});