Publié le 06/19/2017, rédigé par
Chloé MAHALIN
Angular 4
Créer et injecter une classe injectable dans un composant
Une classe peut être injectée dans une autre. Cela permet d'aider à la testabilité et de faciliter le refactoring.
Créer une classe injectable
Ajouter la dépendance Injectable et l'annotation au dessus de la classe qui est destinée à être injectée.
import { Injectable } from '@angular/core';
@Injectable()
export class MyService {
}
Injecter la classe dans un composant
En général
- les services sont injectés dans les composants.
Ajouter la dépendance du service et le rajouter à la liste des providers. C'est lors de l'instanciation du composant
- à travers le constructeur
- que le service sera injecté. Bien sur
- cela nécessite que votre service soit injectable.
import { Component } from '@angular/core';
import { MyService } from '../../../services/myService';
@Component({
selector: 'component-selector'
-
templateUrl: './component.html'
-
styleUrls: ['./component.css']
-
providers: [MyService]
})
export class MyComponent {
//internal fields
private myService: MyService;
constructor(myService: MyService) {
this.myService = myService;
}
}