Angular fournit un routeur qui va nous permettre de définir ... des routes !
Configuration des routes
En général, les routes sont définies dans un fichier app.routes.ts à la racine de l'application :
import { Routes } from '@angular/router'; import { HomeComponent } from './home/home.component'; import { CardsComponent } from './cards/cards.component'; export const routes: Routes = [ { path: '', component: HomeComponent }, { path: 'cards', component: CardsComponent } ];
Importation des routes pour toute l'application
Le fichier app.config.ts va nous permettre d'importer les routes :
import { ApplicationConfig } from '@angular/core'; import { provideHttpClient } from '@angular/common/http'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [provideHttpClient(), provideRouter(routes)] };
Importation des routes pour le composant app
Dans le fichier app.components.ts, il va falloir importer "RouterOutlet" qui est une directive permettant de spécifier où vont s'afficher les composants qui correspondent à des routes :
import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; import { MenuComponent } from './menu/menu.component'; import { RacesComponent } from './cards/cards.component'; @Component({ selector: 'co-root', standalone: true, imports: [MenuComponent, CardsComponent, RouterOutlet], templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'Cards'; }
Utilisation de RouterOutlet dans le template du composant app
<router-outlet> va nous permettre de spécifier dans quelle partie du template devront s'afficher les composants qui correpondent à la route demandée.
<co-menu></co-menu> <main class="container"> <router-outlet></router-outlet> </main>
Ajout de liens avec RouterLink
Pour utiliser un lien qui enverra sur une route, il vous faut :
- importer RouterLink dans le component concerné (menu par exemple)
import { RouterLink } from '@angular/router'; ... @Component({ ... imports: [RouterLink] })
- utiliser la directive routerLink dans vos liens :
<a class="nav-link" routerLink="/races">Races</a>