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

Ajouter la dépendance du service et le rajouter à la liste des providers. C'est lors de l'instanciation du composant

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;
    }
}