Hvordan kan jeg erklære en global variabel i Angular 2 / Typescript?
Jeg vil gerne have, at nogle variabler skal være tilgængelige overalt i en Angular 2
i Typescript
-sproget. Hvordan skal jeg gøre dette?
158
3
Her er den enkleste løsning uden
Service
ellerObserver
:Sæt de globale variabler i en fil og eksporter dem.
For at bruge globals i en anden fil skal du bruge en
import
-erklæring:import * as myGlobals from './globals';
Eksempel:
En delt tjeneste er den bedste løsning
Men du skal være meget forsigtig, når du registrerer den, så du kan dele en enkelt instans til hele din applikation. Du skal definere det, når du registrerer din applikation:
men du må ikke definere den igen i
providers
-attributterne for dine komponenter:Ellers vil der blive oprettet en ny instans af din tjeneste for komponenten og dens underkomponenter.
Du kan tage et kig på dette spørgsmål vedrørende hvordan afhængighedsinjektion og hierarkiske injektorer fungerer i Angular2:
Du kan bemærke, at du også kan definere
Observable
-egenskaber i tjenesten for at give besked til dele af din applikation, når dine globale egenskaber ændres:Se dette spørgsmål for flere detaljer:
Se f.eks. https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
eller angive individuelle værdier