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

208
Visualizações
Cambie img [src] específicamente con ngSwitch

Quiero cambiar la etiqueta img src en función de una condición. Estoy usando el operador ternario en este momento; Quiero preguntar si hay alguna manera de usar ngSwitch en su lugar (SIN REPETIR la etiqueta img ). Aquí está mi código:

 <div> <img height='26' width='22' [src]=" bank.bankName.includes('a') ? 'assets/images/a.png' : bank.bankName.includes('b') ? 'assets/images/b.png' : bank.bankName.includes('c') ? 'assets/images/c.png' : bank.bankName.includes('d') ? 'assets/images/d.png' : '' " /> </div>
over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Crearía una tubería , de modo que escriba una vez el código y luego simplemente agréguelo a cualquier archivo HTML, especialmente si va a usar esta función en más componentes. Además, es más fácil modificar/ampliar en el futuro, ya que solo tiene que modificar en un lugar.

Dejo AQUÍ un stackblitz con el código, pero sería algo como esto:

A) Para usarlo en cualquier archivo HTML (solo agregue | bankNameImagePipe ):

 <img height='26' width='22' [src]="bank.bankName | bankNameImagePipe" />

B) Archivo de tubería:

 import { Pipe, PipeTransform } from '@angular/core'; @Pipe({ name: 'bankNameImagePipe', }) export class BankNameImagePipe implements PipeTransform { transform(value: string): string { let urlBankImg: string = 'assets/images/'; switch (value) { case 'a': urlBankImg+= 'a.png'; break; case 'b': urlBankImg+= 'b.png'; break; case 'c': urlBankImg+= 'c.png'; break; case 'd': urlBanckImg+= 'd.png'; break; default: urlBankImg= 'default.png'; // You can add a 'default' image url here break; } return urlBankImg; } }

NOTA: Supongo que bank.bankName será una cadena y no una matriz. Si no fuera una cuerda, tendrías que cambiar la tubería como corresponde.

¿CÓMO CREAR LA TUBERÍA? Solo necesita escribir este comando en su consola/bash para crear una tubería:

ng g pipe pipes/bankNameImage

ng significa Angular CLI g significa Generar tuberías significa la carpeta donde desea que esté la tubería bankNameImage significa el nombre de la tubería (el que se usará para usar la tubería en HTML)

Luego, solo tienes que llenar el código de plantilla vacío que habrá creado este comando en el archivo nombre-banco-imagen.pipe.ts con el código que proporcioné arriba.

over 4 years ago · Santiago Trujillo Relatório

0

Intentaré responder la pregunta (en lugar de decirte qué haría). No, no puede usar ngSwitch en su lugar sin repetir toda la etiqueta img. Cada ngSwitchCase mostrará/ocultará un elemento. Así es como funciona la sintaxis de ngSwitch:

https://angular.io/api/common/NgSwitchCase

Entonces, la sintaxis para su etiquetado con ngSwitch sería algo como:

 <ng-container [ngSwitch]="bank.bankName"> <img *ngSwitchCase="'a'" src="/assets/a.svg" /> <img *ngSwitchCase="'b'" src="/assets/b.svg" /> <img *ngSwitchCase="'c'" src="/assets/c.svg" /> <img *ngSwitchCase="'d'" src="/assets/d.svg" /> </ng-container>

He dejado un ejemplo crudo aquí:

https://stackblitz.com/edit/angular-ivy-lmfttq?file=src/app/hello.component.html

Así es como funciona ngSwitch en plantillas Angular.

over 4 years ago · Santiago Trujillo Relatório

0

Escribir código en una cadena de operadores ternarios nunca es realmente un buen movimiento, especialmente en plantillas HTML. El cambio está bien y si realmente desea evitarlo, simplemente puede escribir este código en el archivo componente.ts y configurar un public imageSrc = '' llamado peropty, calcular el resultado y asignarlo.

 <div> <img height='26' width='22' [src]="imageSrc" /> </div>
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