Navigation programmatique
La navigation programmatique est une technique qui permet de naviguer entre les routes dans une application Angular sans l'utilisation de liens. Elle est particulièrement utile dans les cas où la navigation doit être déclenchée par des événements autres que le clic de l'utilisateur, comme la fin d'une opération asynchrone ou la validation d'un formulaire.
Qu'est-ce que la navigation programmatique ?
La navigation programmatique fait référence à la capacité de changer de route dans une application Angular en utilisant du code au lieu de liens. Angular fournit le service Router
pour faciliter cette tâche.
Comment utiliser la navigation programmatique ?
Pour naviguer programmatiquement, vous devez injecter le service Router
dans votre composant. Ensuite, vous pouvez appeler la méthode navigate
ou navigateByUrl
pour changer de route.
Voici un exemple de navigation programmatique :
import { Router } from '@angular/router';
constructor(private router: Router) { }
navigateToProduct(id: number) {
this.router.navigate(['/products', id]);
}
Dans cet exemple, la méthode navigateToProduct
prend un ID de produit en paramètre et utilise le service Router
pour naviguer vers la route /products/:id
.
Exemple de navigation après une action
Supposons que vous ayez un formulaire de connexion et que vous souhaitiez naviguer vers une page d'accueil après une connexion réussie. Voici comment vous pourriez procéder :
login(username: string, password: string) {
// Simulate a login API call
this.authService.login(username, password).subscribe({
next: (user) => {
// Navigate to the home page after login
this.router.navigate(['/home']);
},
error: (error) => {
console.error(error);
}
});
}
Dans cet exemple, après que le service authService
ait confirmé une connexion réussie, la méthode navigate
est utilisée pour rediriger l'utilisateur vers la page d'accueil.
Maintenant, vous savez comment effectuer une navigation programmatique dans Angular pour diriger les utilisateurs à travers votre application de manière dynamique et réactive.