TP 8.0 : Routing
Objectifs
- Implémenter un routeur dans l'application
Instructions
Étape 1 : Créer de nouveaux composants et les mapper à des routes
-
Créez les composants suivants :
-
HomeComponent -
PageNotFoundComponent -
AlbumAddComponent -
Créez une route pour chaque composant dans le fichier
app.module.tset importezRouterModule -
Les routes devraient ressembler à ceci:
| Chemin | Composant |
|---|---|
| '' | rediriger vers /home |
| 'home' | HomeComponent |
| 'album/list' | AlbumListComponent |
| 'album/add' | AlbumAddComponent |
| '**' | PageNotFound |
- Maintenant que vos routes sont définies, vous souhaitez injecter les composants routés à la place de
<router-outlet>. AlbumAddComponentaffichera seulement un message pour le moment (Vous n'avez rien à faire dans ce composant pour l'instant).- Dans votre fichier
app.component.html, retirez les balisesalbum-listetalbum-of-the-dayet remplacez-les par<router-outlet>pour indiquer à Angular où afficher les composants routés. - Dans votre fichier
home.component.html, ajoutez la balise<album-of-the-day>.- Normalement, le composant a de la logique associée dans le fichier
app-componentconcernant la possibilité de masquer le composantalbum-of-the-day. Pour ce lab, nous le garderons comme tel et mettrons de côté cette fonctionnalité pour l'instant.
- Normalement, le composant a de la logique associée dans le fichier
- Votre fichier
app.module.tscontient la variableroutesqui devrait ressembler à quelque chose comme :
const routes: Routes = [
{path: '', redirectTo: '/home', pathMatch: 'full'},
{path: 'home', component: HomeComponent},
{path: 'album/add', component: AlbumAddComponent},
{path: 'album/list', component: AlbumsListComponent},
{path: '**', component: PageNotFoundComponent}
]
[CONSEIL] N'oubliez pas d'importer
RouterModule. La méthodeforRootdeRouterModuledoit être appelée avec leroutescomme paramètre.
- Votre fichier
app.component.htmldevrait ressembler à quelque chose comme cela:
<div>
<app-header [title]="title"/>
<main>
<p>
Welcome to {{title}}!
In this app you can manage your music collection
</p>
<router-outlet></router-outlet>
</main>
<app-footer [title]="title"/>
</div>
À ce niveau.
localhost:4200devrait rediriger vers/homeet afficher leHomeComponent.localhost:4200/album/adddevrait afficherAlbumAddComponent.localhost:4200/album/listdevrait afficherAlbumListComponent.
Étape 2 : Ajouter des liens pour naviguer entre les routes
- Dans le fichier
MenuComponent, modifiez les deux liens pour que nous puissions naviguer vers leAlbumsListComponentet leAlbumAddComponent. - Dans le fichier
HeaderComponent, nous voulons également aller/homelors d'un clique sur le titre.