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

266
Visualizações
Vincular una variable mecanografiada para traducir el servicio

Estoy tratando de vincular una variable de TypeScript al servicio de traducción al igual que vincular en el marcado HTML, que funciona bien.

Esto es lo que he intentado hasta ahora

 ngOnInit() { this.customTranslateService.get("mainLayout.userProfileDropdown.changeLocale").subscribe((result) => { this.changeLocaleText = result; }) this.customTranslateService.translateService.onLangChange.subscribe((event: LangChangeEvent) => { this.changeLocaleText = this.customTranslateService.instant("mainLayout.userProfileDropdown.changeLocale"); }); this.userProfileMenuOptions = [ { text: this.changeLocaleText, itemId: "LocaleSelect" }, { text: "Report a bug", itemId: "BugReport" }, { text: "Request a feature", itemId: "FeatureRequest" }, { text: "Log Out", itemId: "LogOut" } ]; }

customTranslateService es solo un servicio que envuelve TranslateService .

La primera suscripción funciona bien, pero cuando cambio de idioma, onLangChange se activa y cambia el contenido de la variable correctamente, pero la referencia de userProfileMenuOptions a changeLocaleText no está vinculada, por lo tanto, no se actualiza.

El uso de un BehaviorSubject realmente no se puede hacer aquí, ya que es un código mecanografiado, no un marcado html que puede usar la tubería async .

Tal vez recrear la matriz userProfileMenuOptions cada vez que se llama a la suscripción de cambio de idioma podría ser una opción, aunque no estoy seguro de que le guste al componente que usa la matriz.

PD: instant funcionará aquí porque tengo un cargador de aplicaciones que carga todos los idiomas disponibles antes de que la aplicación esté disponible para el usuario.

Algunas ideas ?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

ngOnInit() { this.customTranslateService.get("mainLayout.userProfileDropdown.changeLocale").subscribe((result) => { this.changeLocaleText = result; }) const getUserPorfileMenuOptions = (changeLocaleText: string) => { return [ { text: this.changeLocaleText, itemId: "LocaleSelect" }, { text: "Report a bug", itemId: "BugReport" }, { text: "Request a feature", itemId: "FeatureRequest" }, { text: "Log Out", itemId: "LogOut" } ]; } this.customTranslateService.translateService.onLangChange.subscribe((event: LangChangeEvent) => { this.changeLocaleText = this.customTranslateService.instant("mainLayout.userProfileDropdown.changeLocale"); this.userProfileMenuOptions = getUserPorfileMenuOptions(this.changeLocaleText); }); this.userProfileMenuOptions = getUserPorfileMenuOptions(this.changeLocaleText); }
about 4 years ago · Juan Pablo Isaza 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