Le routage avec Angular
Le routage avec Angular
-
Objectifs
- Etre capable de naviguer entre les différents itinéraires dans une application angulaire.
-
Présentation
- Le système de routage est la gestion de l’affichage via l’URL dans le navigateur.
- Pour réaliser ce routage, Angular propose le module
RouterModule
disponible dans la librairie@angular/router
. - Angular-CLI nous propose le module applicatif
AppRoutingModule
permettant d’ajouter la fonctionnalité de routage à notre application : -
Le Routage d’Angular
- Le fichier généré
app.routing.modules.ts
ressemble à ceci: -
import { Routes, RouterModule } from ‘@angular/router’;
- Importez
RouterModule
à partir de@angular/router
et ajoutez-le au@NgModule({..})
tableau des importations dans votre module racine. - @angular/router
- Implémente le service Angular Router, qui permet la navigation d’une vue à l’autre pendant que les utilisateurs effectuent des tâches d’application.
-
Routes
- La partie suivante du fichier est l’endroit où vous configurez vos itinéraires. Les routes indiquent au routeur la vue à afficher lorsqu’un utilisateur clique sur un lien ou colle une URL dans la barre d’adresse du navigateur.
- Un angulaire typique Route a deux propriétés:
- path: une chaîne qui correspond à l’URL dans la barre d’adresse du navigateur.
- component: le composant que le routeur doit créer lors de la navigation vers cet itinéraire.
-
@NgModule
- RouterModule.forRoot()
- forRoot crée un module qui contient toutes les directives, les routes données et le service de routeur lui-même.
forRoot
: permet d’initialiser tout (principalement des services) ce qui ne doit être initialisé qu’une seule fois par application. L’initialisation du routing principal se fera également ici. Il faudra donc limiter l’utilisation de cette fonction à l’App(Routing)Module
.
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule],
providers: []
})
export class AppRoutingModule { }