|
Publié le 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;
    }
}