/ / Est-il possible d’utiliser un service dans une classe de typographie en angulaire 2+ - angular

est-il possible d'utiliser un service dans une classe dactylographiée en angulaire 2+ - angular

J'ai une classe comme suit qui n'est pas annotée avec @Injectable

export class A extends B {

calculateTotal(): number {
//Implementation
}
}

La fonction ci-dessus CalculateTotal doit utiliser unservice annoté avec @Injectable pour pouvoir obtenir des valeurs permettant d’effectuer certains totaux. La question est: est-il correct d'utiliser ce service dans cette classe?

Ashley

Réponses:

1 pour la réponse № 1

Il y a différentes façons d'en obtenir un SomeService exemple injecté dans class A. Celui que j'utilise par exemple dans Ionic 2 est:

  • si la classe A peut être un composant, ajoutez le @Component décorateur à sa définition et la providers métadonnées à elle;
  • importer la définition de service dans le class A fichier de définition;
  • ajouter une méthode constructeur à class A et déclarer une instance de service en tant qu'argument.

Par exemple, en supposant que la classe de service est nommée SomeService et est défini dans le fichier some.service.ts dans le même répertoire que le fichier source actuel:

import { Component } from "@angular/core";
import { SomeService } from "./some.service";

@Component({
providers: [ SomeService ]
})
export class A extends B {

constructor( public s:SomeService ){}

otherMethod(){
this.s; // SomeService is accessible like this
}
}

Plus d'informations sont disponibles dans les docs officiels.