Viac na
Ako môžem deklarovať globálnu premennú v jazyku Angular 2 / Typescript?
Chcel by som, aby boli niektoré premenné prístupné všade v jazyku Angular 2
v jazyku Typescript
. Ako by som to mal dosiahnuť?
158
3
Tu je najjednoduchšie riešenie bez
Service
aObserver
:Umiestnite globálne premenné do súboru a exportujte ich.
Ak chcete globálne premenné použiť v inom súbore, použite príkaz
import
:import * as myGlobals from './globals';
Príklad:
Najlepší prístup je zdieľaná služba
Pri jej registrácii však musíte byť veľmi opatrní, aby ste mohli zdieľať jednu inštanciu pre celú aplikáciu. Musíte ju definovať pri registrácii aplikácie:
ale nie ho definovať znova v rámci atribútov
providers
vašich komponentov:V opačnom prípade sa pre komponent a jeho podradené komponenty vytvorí nová inštancia vašej služby.
Môžete sa pozrieť na túto otázku týkajúcu sa fungovania injekcie závislostí a hierarchických injektorov v systéme Angular2:
Môžete si všimnúť, že v službe môžete definovať aj vlastnosti
Observable
, aby ste upozornili časti aplikácie, keď sa zmenia vaše globálne vlastnosti:Viac informácií nájdete v tejto otázke:
Pozri napríklad https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
alebo uveďte jednotlivé hodnoty