Je ne pense pas que vous problème est dactylographiée en soi, mais avec l'injection de dépendance angulaire et la façon dont les composants sont composés à la place.
Si vous regardez le code source du paquet que vous utilisez, vous verrez que la fonction show
est réellement implémentée par les FlashMessagesComponent et not by FlashMessagesService itself. Donc, pour en créer une instance par vous-même sans l'injection de dépendances d'angular, cela va être compliqué car vous devrez également fournir une instance de la classe abstraite ChangeDetectorRef
, qui peut elle-même dépendre d'autres éléments. devenir vraiment désordonné assez rapidement.
quelque chose comme le soufflet de code peut vous aider à commencer à jouer avec elle, mais il est loin d'être quelque chose que vous voulez utiliser dans le monde réel.
import { FlashMessagesService, FlashMessagesComponent } from 'angular2-flash-messages';
let _flashMessagesService = new FlashMessagesService();
let component = new FlashMessagesComponent(_flashMessagesService, { detectChanges:() => {}});
console.log(_flashMessagesService.show) // [Function show]
EDIT:
Je codé directement ici sur le SO et n'a pas pu le tester (désolé :(), maintenant vérifier plus à fond, il semble que FlashMessagesComponent it not exported, donc je ne vois pas clairement un moyen pour vous de créer une instance sans utiliser FlashMessagesModule
et cycle de vie d'injection de dépendance angulaire
Je pense que nous avons besoin de voir la méthode 'show' ou comment il est appelé –
... btw Je ne pense pas que vous avez besoin de la« déclaration 'mot-clé - Je pense que c'est généralement seulement pour co ambiante ntext. c'est-à-dire qu'il n'émet pas de javascript –