Académique Documents
Professionnel Documents
Culture Documents
Cours Angular Service
Cours Angular Service
Achref El Mouelhi
elmouelhi.achref@gmail.com
1 Définition
2 Créer un service
3 Déclarer un service
4 Utiliser un service
Angular
Définition : service
une classe TypeScript décorée par @Injectable
un singleton
intermédiaire avec la partie back-end
injectable dans les classes où on a besoin de l’utiliser
pouvant faire appel à un ou plusieurs autres services
Angular
Pour créer un service
ng generate service nom-service
Angular
Pour créer un service
ng generate service nom-service
Ou aussi
ng g s nom-service
Angular
Pour créer un service
ng generate service nom-service
Ou aussi
ng g s nom-service
Angular
Le contenu de personne.service.ts jusqu’à la version 5 d’Angular
import { Injectable } from ’@angular/core’;
@Injectable()
export class PersonneService {
constructor() { }
}
Angular
Le contenu de personne.service.ts jusqu’à la version 5 d’Angular
import { Injectable } from ’@angular/core’;
@Injectable()
export class PersonneService {
constructor() { }
}
@Injectable({
providedIn: ’root’
})
export class PersonneService {
constructor() { }
}
Pour les versions d’Angular inférieures à la version 6, il faut déclarer le service dans la
section providers dans app.module.ts
@NgModule({
declarations: [
AppComponent,
AdresseComponent,
PersonneComponent,
FormulaireComponent
],
imports: [
BrowserModule,
FormsModule,
],
providers: [PersonneService],
bootstrap: [AppComponent]
})
export class AppModule { }
Angular
Remarque
Angular
Angular
@Injectable({
providedIn: ’root’
})
export class PersonneService {
constructor() { }
getAll(){
return this.personnes;
}
addPerson(p: Personne){
this.personnes.push(p);
}
}
Il faut aussi créer les méthodes qui permettent de modifier et supprimer de personnes.
12-13 Avril 2018 9 / 14
Utiliser un service
Angular
Il faut injecter le service PersonneService dans le constructeur de
PersonneComponent pour pouvoir l’utiliser
import { Component, OnInit } from ’@angular/core’;
import { PersonneService } from ’../services/personne.
service’;
@Component({
selector: ’app-personne’,
templateUrl: ’./personne.component.html’,
styleUrls: [’./personne.component.css’]
})
export class PersonneComponent implements OnInit {
ngOnInit() { }
}
12-13 Avril 2018 10 / 14
Utiliser un service
Angular
Remarque
Angular
Pour tester, on prépare la liste des personne dans personne.service.ts
import { Injectable } from ’@angular/core’;
import { Personne } from ’../classes/personne’;
@Injectable({
providedIn: ’root’
})
export class PersonneService {
constructor() {
this.personnes.push(new Personne ("wick","john"));
this.personnes.push(new Personne ("green","bob"));
}
getAll(){
return this.personnes;
}
addPerson(p: Personne){
this.personnes.push(p);
}
}
Angular
Dans personne.component.ts, on appelle la méthode getAll() du service
import { Component, OnInit } from ’@angular/core’;
import { Personne } from ’../classes/personne’;
import { PersonneService } from ’../services/personne.service’;
@Component({
selector: ’app-personne’,
templateUrl: ’./personne.component.html’,
styleUrls: [’./personne.component.css’]
})
export class PersonneComponent implements OnInit {
Angular