Come posso dichiarare una variabile globale in Angular 2 / Typescript?
Vorrei che alcune variabili fossero accessibili ovunque in un Angular 2
nel linguaggio Typescript
. Come dovrei procedere per realizzare questo?
158
3
Ecco la soluzione più semplice senza
Service
néObserver
:Metti le variabili globali in un file ed esportale.
Per usare le variabili globali in un altro file usate una dichiarazione
import
:import * as myGlobals from './globals';
Esempio:
Un servizio condiviso è l'approccio migliore
Ma bisogna stare molto attenti quando lo si registra per poter condividere una singola istanza per tutta l'applicazione. Devi definirlo quando registri la tua applicazione:
ma non definirlo di nuovo negli attributi
providers
dei tuoi componenti:Altrimenti verrà creata una nuova istanza del tuo servizio per il componente e i suoi sottocomponenti.
Puoi dare un'occhiata a questa domanda su come funzionano la dependency injection e gli iniettori gerarchici in Angular2:
Puoi notare che puoi anche definire proprietà
Observable
nel servizio per notificare parti della tua applicazione quando le tue proprietà globali cambiano:Vedere questa domanda per maggiori dettagli:
Vedi per esempio https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
-- language-all: lang-ts -->
o fornire valori individuali