Estoy usando ngx-translate con Angular. Quiero cambiar una imagen dependiendo del idioma utilizado en la aplicación. Lo que pasa es que no puedo cambiar la imagen cuando hago clic en un idioma. Tengo dos idiomas 'en' y 'es'.
Este es mi 'header.component.html'. Este es el componente que tiene el menú de la aplicación. Como puede ver, hay una función 'updateSrc()' en el atributo de clic.
<div class="select-box__current" tabindex="1"> <div class="select-box__value" (click)="useLanguage('es');updateSrc(second_url);"> <input class="select-box__input" type="radio" id="0" value="1" /> <p class="select-box__input-text">es</p> </div> <div class="select-box__value" (click)="useLanguage('en');updateSrc(first_url);"> <input class="select-box__input" type="radio" id="1" value="2" checked="checked"/> <p class="select-box__input-text">en</p> </div> </div>También tengo otro componente 'looker.component.html' donde la imagen tiene que cambiar.
<div class="map"> <img class="graph" src="{{first_url}}" alt="graph"> </div>Y este es mi 'looker.component.ts' donde no estoy seguro de cómo escribir la función updateSrc() para cambiar la otra URL cuando alguien hace clic en uno de los dos idiomas.
import { Component, OnInit, PLATFORM_ID, Inject } from '@angular/core'; import { Meta, Title } from '@angular/platform-browser'; @Component({ selector: 'app-looker', templateUrl: './looker.component.html', styleUrls: ['./looker.component.scss'] }) export class LookerComponent implements OnInit { first_url: string = "https://storage.googleapis.com/amarello-web-assets/img/graph_2.svg"; second_url: string = "https://storage.googleapis.com/amarello-web-assets/img/graph_1.svg"; constructor( private title: Title, private meta: Meta, @Inject(PLATFORM_ID) private platformId: Object ) { } ngOnInit(): void { this.first_url; } updateSrc(url) { } }Puede usar el enlace de propiedad en [src] que tomará el valor de la propiedad first_url y luego en el evento de cambio simplemente actualice la propiedad como se muestra a continuación.
html
<div class="map"> <img class="graph" [src]="first_url" alt="graph"> <!-- changed here --> </div>t
import { Component, OnInit, PLATFORM_ID, Inject } from '@angular/core'; import { Meta, Title } from '@angular/platform-browser'; @Component({ selector: 'app-looker', templateUrl: './looker.component.html', styleUrls: ['./looker.component.scss'] }) export class LookerComponent implements OnInit { first_url: string = "https://storage.googleapis.com/amarello-web-assets/img/graph_2.svg"; second_url: string = "https://storage.googleapis.com/amarello-web-assets/img/graph_1.svg"; constructor( private title: Title, private meta: Meta, @Inject(PLATFORM_ID) private platformId: Object ) { } ngOnInit(): void { } updateSrc(url) { this.first_url = url; // <- changed here } }