¿Cómo puedo declarar una variable global en Angular 2 / Typescript?
Me gustaría que algunas variables fueran accesibles en todas partes en un Angular 2
en el lenguaje Typescript
. Cómo debo hacer para lograr esto?
158
3
Aquí está la solución más simple sin
Service
niObserver
:Poner las variables globales en un archivo y exportarlas.
Para utilizar las globales en otro archivo, utilice una sentencia
import
: ``import * as myGlobals from './globals';```Ejemplo:
Un servicio compartido es el mejor enfoque
Pero hay que tener mucho cuidado al registrarlo para poder compartir una única instancia para toda tu aplicación. Tienes que definirlo cuando registres tu aplicación:
pero no volver a definirlo dentro de los atributos
providers
de tus componentes:De lo contrario, se creará una nueva instancia de su servicio para el componente y sus subcomponentes.
Puedes echar un vistazo a esta pregunta sobre cómo funcionan la inyección de dependencia y los inyectores jerárquicos en Angular2:
Puedes notar que también puedes definir propiedades
Observables
en el servicio para notificar a partes de tu aplicación cuando tus propiedades globales cambien:Vea esta pregunta para más detalles:
Véase, por ejemplo, https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
idioma-todo: lang-ts -->
o proporcionar valores individuales