0% ont trouvé ce document utile (0 vote)
374 vues26 pages

Cours Angular Service

Transféré par

idrissa dembele
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
374 vues26 pages

Cours Angular Service

Transféré par

idrissa dembele
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Angular : service

Achref El Mouelhi

Docteur de l’université d’Aix-Marseille


Chercheur en programmation par contrainte (IA)
Ingénieur en génie logiciel

[Link]@[Link]

H & H: Research and Training 1 / 18


Plan

1 Définition

2 Créer un service

3 Déclarer un service

4 Utiliser un service

H & H: Research and Training 2 / 18


Définition

Angular

Service
classe TypeScript décorée par @Injectable

H I ©
singleton
U EL
O
LM
pouvant avoir le rôle de

e f E
l’intermédiaire avec la partie back-end
r
A chcommunication entre composants
un moyen de
©
injectable dans les classes où on a besoin de l’utiliser
pouvant utiliser un ou plusieurs autres services

H & H: Research and Training 3 / 18


Définition

Angular
Quelques services Angular utilisés dans les chapitres précédents

ActivatedRoute

Router

FormBuilder
H I ©
U EL
O
f E LM
ch r e
©A

H & H: Research and Training 4 / 18


Définition

Angular
Quelques services Angular utilisés dans les chapitres précédents

ActivatedRoute

Router

FormBuilder
H I ©
U EL
O
f E LM
Autres services Angular

ch r e
©A
HttpClient

...

H & H: Research and Training 4 / 18


Définition

Angular
Quelques services Angular utilisés dans les chapitres précédents

ActivatedRoute

Router

FormBuilder
H I ©
U EL
O
f E LM
Autres services Angular

ch r e
©A
HttpClient

...

Il est possible de créer nos services personnalisés.

H & H: Research and Training 4 / 18


Créer un service

Angular

Pour créer un service


ng generate service service-name

H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 5 / 18


Créer un service

Angular

Pour créer un service


ng generate service service-name

H I ©
UEL
O
LM
Ou aussi
ng g s service-name
r e f E
ch
©A

H & H: Research and Training 5 / 18


Créer un service

Angular

Pour créer un service


ng generate service service-name

H I ©
UEL
O
LM
Ou aussi
ng g s service-name
r e f E
ch
©A
Pour créer un service dans un répertoire services
ng g s services/service-name

H & H: Research and Training 5 / 18


Créer un service

Angular

Pour créer un service sans générer le fichier de test


ng g s services/service-name --skip-tests=true

H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 6 / 18


Créer un service

Angular

Pour créer un service sans générer le fichier de test


ng g s services/service-name --skip-tests=true

H I ©
UEL
O
Exemple
f E LM
ch r e
ng g s services/personne --skip-tests=true

©A

H & H: Research and Training 6 / 18


Créer un service

Angular

Pour créer un service sans générer le fichier de test


ng g s services/service-name --skip-tests=true

H I ©
UEL
O
Exemple
f E LM
ch r e
ng g s services/personne --skip-tests=true

©A
Constat
CREATE src/app/services/[Link] (130 bytes)

H & H: Research and Training 6 / 18


Créer un service

Angular
Le contenu de [Link] jusqu’à la version 5 d’Angular
import { Injectable } from ’@angular/core’;

@Injectable()
export class PersonneService {

constructor() { }
H I ©
}
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 7 / 18


Créer un service

Angular
Le contenu de [Link] jusqu’à la version 5 d’Angular
import { Injectable } from ’@angular/core’;

@Injectable()
export class PersonneService {

constructor() { }
H I ©
}
UEL
O
f E LM
r e
Le contenu de [Link] à partir de la version 6 d’Angular

ch
©A
import { Injectable } from ’@angular/core’;

@Injectable({
providedIn: ’root’
})
export class PersonneService {

constructor() { }
}

H & H: Research and Training 7 / 18


Déclarer un service

Pour les versions d’Angular inférieures à la version 6, il faut déclarer le service dans la
section providers dans [Link]

import { BrowserModule } from ’@angular/platform-browser’;


import { NgModule } from ’@angular/core’;
import { FormsModule } from ’@angular/forms’;
// + les imports précédents
import { PersonneService } from ’./services/[Link]’;

@NgModule({
H I ©
declarations: [
U EL
AppComponent,
O
LM
AdresseComponent,
PersonneComponent,
FormulaireComponent
r e f E
],
ch
imports: [
BrowserModule,
FormsModule,
©A
],
providers: [PersonneService],
bootstrap: [AppComponent]
})
export class AppModule { }

H & H: Research and Training 8 / 18


Déclarer un service

Angular

Remarque
H I ©
UEL
Depuis la version 6 d’Angular, on n’a plus besoin de déclarer les
O
f E LM
services dans la section providers dans [Link]

ch r e
L’expression providedIn: ’root’ vaut déclaration
©A

H & H: Research and Training 9 / 18


Utiliser un service

Angular

Considérons l’interface Personne suivante


H I ©
export interface Personne {
UEL
id?: number;
O
nom?: string;
f E LM
prenom?: string;
ch r e
©A
}

H & H: Research and Training 10 / 18


Utiliser un service

Mettons à jour le contenu de [Link]

import { Injectable } from ’@angular/core’;


import { Personne } from ’../interfaces/personne’;

@Injectable({
providedIn: ’root’
})
export class PersonneService {

H I ©
personnes: Array<Personne> = new Array<Personne>();
U EL
O
LM
constructor() { }
getAll(): Array<Personne> {
return [Link];
r e f E
}
ch
©A
addPerson(p: Personne): void {
[Link](p);
}
}

Il faut aussi créer les méthodes qui permettent de modifier et supprimer de personnes.

H & H: Research and Training 11 / 18


Utiliser un service

Angular

Pour la suite, créons un composant personne dans composants


ng g c modules/cours/personne
H I ©
UEL
O
f E LM
ch r e
©A

H & H: Research and Training 12 / 18


Utiliser un service

Angular

Pour la suite, créons un composant personne dans composants


ng g c modules/cours/personne
H I ©
UEL
O
Résultat
f E LM
r e
CREATE src/app/modules/cours/personne/[Link] (23 bytes
)
ch
bytes) ©A
CREATE src/app/modules/cours/personne/[Link] (640

CREATE src/app/modules/cours/personne/[Link] (283 bytes)


CREATE src/app/modules/cours/personne/[Link] (0 bytes)
UPDATE src/app/modules/cours/[Link] (965 bytes)

H & H: Research and Training 12 / 18


Utiliser un service

Angular
Contenu de [Link]
import { Component, OnInit } from ’@angular/core’;

@Component({
selector: ’app-personne’,
H I ©
templateUrl: ’./[Link]’,
UEL
O
LM
styleUrls: [’./[Link]’]
})
r e f E
ch
export class PersonneComponent implements OnInit {

©A
constructor() { }

ngOnInit() { }

H & H: Research and Training 13 / 18


Utiliser un service

Angular
Injectons PersonneService dans le constructeur de PersonneComponent
pour pouvoir l’utiliser

import { Component, OnInit } from ’@angular/core’;


import { PersonneService } from ’../../services/personne.
service’;
H I ©
@Component({
UEL
O
LM
selector: ’app-personne’,

r e
styleUrls: [’./[Link]’] E
templateUrl: ’./[Link]’,
f
ch
©A
})
export class PersonneComponent implements OnInit {

constructor(private personneService: PersonneService) { }

ngOnInit() { }
}

H & H: Research and Training 14 / 18


Utiliser un service

Angular

Remarque
H I ©
Maintenant on peut utiliser les méthodes dE
U L dans le service
éfinies
etM
O
f E L
Il est à rappeler que le service l’élément de notre application qui
va communiquer avec
h r e un serveur JSON ou un Web-Service (pour
c érer des données)
©A
persister ou récup

H & H: Research and Training 15 / 18


Utiliser un service

Angular
Pour tester, on prépare la liste des personne dans [Link]
import { Injectable } from ’@angular/core’;
import { Personne } from ’../interfaces/personne’;

@Injectable({

})
providedIn: ’root’

H I ©
export class PersonneService {
UEL
O
LM
personnes: Array <Personne> = new Array <Personne>();

constructor() {
r e f E
ch
[Link]({ nom: ’wick’, prenom: ’john’ });

©A
[Link]({ nom: ’green’, prenom: ’bob’ });
}
getAll(): Array<Personne> {
return [Link];
}
addPerson(p: Personne): void {
[Link](p);
}
}

H & H: Research and Training 16 / 18


Utiliser un service

Angular
Dans [Link], on appelle la méthode getAll() du service

import { Component, OnInit } from ’@angular/core’;


import { PersonneService } from ’../../services/[Link]’;
import { Personne } from ’../../interfaces/personne’;

@Component({
H I ©
EL
selector: ’app-personne’,
templateUrl: ’./[Link]’,
styleUrls: [’./[Link]’]
O U
})

f E LM
export class PersonneComponent implements OnInit {

ch r e
©A
personnes: Array <Personne> = new Array <Personne>();

constructor(private personneService: PersonneService) { }

ngOnInit() {
[Link] = [Link]();
}
}

H & H: Research and Training 17 / 18


Utiliser un service

Angular

Enfin, on affiche le résultat dans [Link]


<h2>Liste des personnes</h2> H I ©
<ul>
UEL
O
<li *ngFor="let elt of personnes">
{{ [Link] }} {{ [Link] }}
f E LM
</li>
ch r e
</ul>
©A

H & H: Research and Training 18 / 18

Vous aimerez peut-être aussi