💡Ergänzend zu Navigation
Wie kann ich zu einer Seite resp. zurück navigieren?
Die Navigation ist basierend auf welcher URL wir gerade haben resp. welcher Route dazu passt. Wenn die URL gewechselt wird, ändert die aktuelle Seite. Aber wir haben einige weitere Optionen um zu navigieren:
Zuerst müssen wir den Angular Router importieren und in unserer Page/Component hinzufügen. Füge dazu in der Page/Component folgendes ein:
// Schritt 1: Angular Router importieren
import { ..., inject } from '@angular/core';
import { Router } from '@angular/router';
...
export class NavigationPage implements OnInit {
// Schritt 2: Router injecten
private router = inject(Router)
...
}
Danach kann man ein normalen Angular Router href verwenden um auf eine andere Seite zu navigieren. /detail
ist dabei die URL der Zielseite.
<a [href]="'/detail/' + item.id">...</a>
oder auch im Code:
navigateToDetail() {
this.router.navigateByUrl('/detail');
}
<button (click)="navigateToDetail()">Detailseite anzeigen</button>
Wie übergebe ich Werte zwischen zwei Seiten?
Das Array, welches der navigate
Funktion als Parameter übergeben wird, akzeptiert die folgenden Parameter:
navigateToDetail() {
// Der Parameter 'id' wird später weiter unten weiterverwendet
this.router.navigate(['/detail', { id: itemId }]);
}
Die Daten sind in der PersonDetail
-Seite nun über die ActivatedRoute
mit über paramMap
zu holen:
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-person-detail',
templateUrl: './person-detail.page.html',
styleUrls: ['./person-detail.page.scss'],
})
export class PersonDetailPage implements OnInit {
private personID: number;
private route = inject(ActivatedRoute);
ngOnInit() {
// Hier wird die Personen-ID über den Parameter 'id' geholt.
this.personID = this.route.snapshot.paramMap.get('id');
}
}
Mehr dazu findest du auch in folgendem Tutorial:
Last updated