Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

131
Vistas
Angular2 detecta cambios en el servicio

Tengo un componente en Angular2 que está cambiando una variable de clase "lang" en mi servicio translate.service.ts. En otro componente, busco un dictado con la traducción en init. Si el primer componente cambia el idioma de los servicios más tarde, quiero recuperar el dict en el segundo componente automáticamente. ¿Cómo puedo hacer eso?

Primer componente:

 setLang(lang) { this._translateService.setLang(lang); }

Servicio:

 dict = { "en": {}}; lang = "en"; setLang(lang) { this.lang = lang; } getLang() { return this.dict; }

Segundo componente:

 ngOnInit() { this.dict = this._translateService.getDict(); }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Editar:

Siguiendo el comentario de Mark , se debe preferir un Subject / Observable :

EventEmitter solo debe usarse para emitir eventos personalizados en componentes, y debemos usar Rx para otros escenarios de eventos/observables.

Respuesta original:

Debe usar un EventEmitter en el servicio:

 export class LangService { langUpdated:EventEmitter = new EventEmitter(); setLang(lang) { this.lang = lang; this.langUpdated.emit(this.lang); } getLang() { return this.dict; } }

Los componentes pueden suscribirse a este evento para recibir una notificación cuando se actualice la propiedad lang .

 export class MyComponent { constructor(private _translateService:LangService) { } ngOnInit() { this._translateService.langUpdated.subscribe( (lang) => { this.dict = this._translateService.getDict(); } ); } }

Vea esta pregunta para más detalles:

  • Delegación: EventEmitter u Observable en Angular
  • Delegación: EventEmitter u Observable en Angular
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda