Hvordan kan jeg erklære en global variabel i Angular 2 / Typescript?
Jeg ønsker at noen variabler skal være tilgjengelige overalt i en Angular 2
i Typescript
-språket. Hvordan skal jeg gå frem for å oppnå dette?
158
3
Her er den enkleste løsningen uten
Service
ellerObserver
:Legg de globale variablene i en fil og eksporter dem.
For å bruke globale variabler i en annen fil, bruk en
import
-setning:importer * som myGlobals fra './globals';
Eksempel:
En delt tjeneste er den beste tilnærmingen
Men du må være veldig forsiktig når du registrerer den for å kunne dele en enkelt instans for hele søknaden din. Du må definere det når du registrerer søknaden din:
men ikke definere det igjen i
providers
-attributtene til komponentene dine:Ellers vil det opprettes en ny instans av tjenesten din for komponenten og dens underkomponenter.
Du kan ta en titt på dette spørsmålet om hvordan avhengighetsinjeksjon og hierarkiske injektorer fungerer i Angular2:
Du kan legge merke til at du også kan definere
Observable
egenskaper i tjenesten for å varsle deler av applikasjonen din når dine globale egenskaper endres:Se dette spørsmålet for mer informasjon:
Se for eksempel https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
eller oppgi individuelle verdier