Détails
Comment déclarer une variable globale dans Angular 2 / Typescript ?
Je voudrais que certaines variables soient accessibles partout dans un Angular 2
en langage Typescript
. Comment dois-je m'y prendre pour y parvenir ?
158
3
Voici la solution la plus simple, sans
Service
niObserver
:Mettez les variables globales dans un fichier et exportez-les.
Pour utiliser les variables globales dans un autre fichier, utilisez une instruction
import`' :
import * as myGlobals from ' ;./globals';``Exemple :
Un service partagé est la meilleure approche
Mais vous devez être très prudent lorsque vous l'enregistrez afin de pouvoir partager une seule instance pour toute votre application. Vous devez le définir lors de l'enregistrement de votre application :
mais ne pas le redéfinir dans les attributs
providers
de vos composants :Sinon, une nouvelle instance de votre service sera créée pour le composant et ses sous-composants.
Vous pouvez consulter cette question concernant le fonctionnement de l'injection de dépendances et des injecteurs hiérarchiques dans Angular2 :
Vous pouvez remarquer que vous pouvez également définir des propriétés
Observable
dans le service pour notifier des parties de votre application lorsque vos propriétés globales changent :Voir cette question pour plus de détails :
Voir par exemple https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
ou fournir des valeurs individuelles