Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

135
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda