Wie kann ich eine globale Variable in Angular 2 / Typescript deklarieren?
Ich möchte, dass einige Variablen überall in einem "Angular 2" in der Sprache "Typescript" zugänglich sind. Wie sollte ich vorgehen, um dies zu erreichen?
158
3
Hier ist die einfachste Lösung ohne
Service
undObserver
:Lege die globalen Variablen in eine Datei und exportiere sie.
Um globale Variablen in einer anderen Datei zu verwenden, benutze eine
import
Anweisung:import * as myGlobals from './globals';
Beispiel:
Ein gemeinsamer Dienst ist der beste Ansatz
Aber Sie müssen bei der Registrierung sehr vorsichtig sein, um eine einzige Instanz für Ihre gesamte Anwendung freigeben zu können. Sie müssen dies bei der Registrierung Ihrer Anwendung definieren:
aber nicht erneut in den
providers
-Attributen Ihrer Komponenten definieren:Andernfalls wird eine neue Instanz Ihres Dienstes für die Komponente und ihre Unterkomponenten erstellt.
Sie können einen Blick auf diese Frage werfen, wie Dependency Injection und hierarchische Injektoren in Angular2 funktionieren:
Sie können feststellen, dass Sie auch "beobachtbare" Eigenschaften im Service definieren können, um Teile Ihrer Anwendung zu benachrichtigen, wenn sich Ihre globalen Eigenschaften ändern:
Siehe diese Frage für weitere Details:
Siehe zum Beispiel https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
oder einzelne Werte angeben