Académique Documents
Professionnel Documents
Culture Documents
Achref El Mouelhi
elmouelhi.achref@gmail.com
1 Création de component
2 Routage
4 Paramètres de requête
Angular
Ou utiliser le raccourci
ng g c ComponentName
Angular
Ou utiliser le raccourci
ng g c ComponentName
ng g c personne
Angular
Constats
Quatre fichiers créés pour chaque composant
x.component.ts avec x = personne ou adresse
x.component.html
x.component.css
x.component.spec.ts
Angular
Angular
Pour afficher le contenu de ces deux composants dans
app.component.html
<app-personne></app-personne>
<app-adresse></app-adresse>
Angular
Pour afficher le contenu de ces deux composants dans
app.component.html
<app-personne></app-personne>
<app-adresse></app-adresse>
Remarques
Angular
Routage
un tableau d’objet
chaque objet contient des attributs (path, component,
redirectTo...) assurant le mapping chemin/composant
Angular
Dans app.module.ts, on commence par importer le module de routage
import { RouterModule } from ’@angular/router’;
Angular
Dans app.module.ts, on commence par importer le module de routage
import { RouterModule } from ’@angular/router’;
Ce module doit être ajouté dans la section imports
@NgModule({
declarations: [
AppComponent,
AdresseComponent,
PersonneComponent
],
imports: [
BrowserModule,
RouterModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
12-13 Avril 2018, POE m2i 8 / 34
Routage
Angular
Angular
Définissons ce tableau de routes
imports: [
BrowserModule,
RouterModule.forRoot([
{ path: ’personne’, component: PersonneComponent },
{ path: ’adresse’, component: AdresseComponent },
])
],
Angular
Définissons ce tableau de routes
imports: [
BrowserModule,
RouterModule.forRoot([
{ path: ’personne’, component: PersonneComponent },
{ path: ’adresse’, component: AdresseComponent },
])
],
Remarques
Angular
Angular
Angular
Pour tester
il faut activer le routage dans le composant principal
saisir localhost:4200/adresse ou
localhost:4200/personne dans la barre d’adresse
Angular
Pour tester
il faut activer le routage dans le composant principal
saisir localhost:4200/adresse ou
localhost:4200/personne dans la barre d’adresse
Angular
Remarques
Angular
Explication
Angular
Remarques
Angular
Angular
Comprenons la commande
Angular
La section imports du fichier app.module.ts
imports: [
BrowserModule,
RouterModule.forRoot([
{ path: ’personne’, component: PersonneComponent },
{ path: ’adresse’, component: AdresseComponent },
]),
AppRoutingModule
],
Le fichier app-routing.module.ts
import { NgModule } from ’@angular/core’;
import { CommonModule } from ’@angular/common’;
@NgModule({
imports: [
CommonModule
],
declarations: []
})
export class AppRoutingModule { }
12-13 Avril 2018, POE m2i 17 / 34
Création d’un module de routage
Angular
La section imports du fichier app.module.ts
imports: [
BrowserModule,
AppRoutingModule
],
Angular
Angular
Angular
Définissons une route de la forme /chemin/param1/param2 dans app.module.ts
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Angular
Définissons une route de la forme /chemin/param1/param2 dans app.module.ts
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
Pour la deuxième forme de route, on n’a pas besoin de définir une nouvelle route si une route
avec un path: ’chemin’ existe
Angular
@Component({
selector: ’app-personne’,
templateUrl: ’./personne.component.html’,
styleUrls: [’./personne.component.css’]
})
export class PersonneComponent implements OnInit {
param1: any;
param2: any;
ngOnInit() {
this.router.paramMap.subscribe(res => {
this.para12 = res.get(’param1’);
this.param1 = res.get(’param2’);
console.log(param1 + param2);
});
}
}
12-13 Avril 2018, POE m2i 22 / 34
Paramètres de requête
Angular
@Component({
selector: ’app-personne’,
templateUrl: ’./personne.component.html’,
styleUrls: [’./personne.component.css’]
})
export class PersonneComponent implements OnInit {
param1: any;
param2: any;
ngOnInit() {
this.router.queryParamMap.subscribe(res => {
this.param1 = res.get(’param1’);
this.param2 = res.get(’param2’);
console.log(param1 + param2);
});
}
}
12-13 Avril 2018, POE m2i 24 / 34
Création de liens avec paramètres
Angular
Angular
Dans personne.component.ts
import { ActivatedRoute } from ’@angular/router’;
// + les autres imports de components
@Component({
selector: ’app-personne’,
templateUrl: ’./personne.component.html’,
styleUrls: [’./personne.component.css’]
})
export class PersonneComponent implements OnInit {
Angular
Une deuxième écriture
<ul>
<li><a routerLink=’’>Accueil</a></li>
<li><a [routerLink]=’lienPersonne’> Personne</a></
li>
<li><a routerLink=’/adresse’>Adresse</a></li>
</ul>
<router-outlet></router-outlet>
Angular
Une deuxième écriture
<ul>
<li><a routerLink=’’>Accueil</a></li>
<li><a [routerLink]=’lienPersonne’> Personne</a></
li>
<li><a routerLink=’/adresse’>Adresse</a></li>
</ul>
<router-outlet></router-outlet>
Angular
<router-outlet></router-outlet>
Angular
<router-outlet></router-outlet>
Angular
Étapes
Injecter la classe Router dans le constructeur de notre classe
Utiliser l’objet de cette classe injectée dans n’importe quelle
méthode de notre classe (.component.ts) pour réorienter vers
un autre chemin
Angular
Dans adresse.component.ts
import { Router } from ’@angular/router’;
// + les autres imports de components
@Component({
selector: ’app-adresse’,
templateUrl: ’./adresse.component.html’,
styleUrls: [’./adresse.component.css’]
})
export class AdresseComponent implements OnInit {
goToPersonne() {
this.router.navigateByUrl("/personne/" + this.param1 + "/" + this.
param2);
}
}
Angular
On peut aussi utiliser la méthode navigate()
@Component({
selector: ’app-adresse’,
templateUrl: ’./adresse.component.html’,
styleUrls: [’./adresse.component.css’]
})
export class AdresseComponent implements OnInit {
goToPersonne() {
this.router.navigate([’/personne’, this.param1 , this.param2]);
}
}
Angular
Angular