Publicado el 26.03.2022 a las 16:44
Aprende qué es una directiva en Angular y aprende a crear una directiva personalizada
Lo que aprenderás será a que aparezca una imagen por defecto en lugar del típico error de que no se encuentra una imagen para conseguir una mejor experiencia de usuario.
Verás esto:
En lugar del típico error de imagen no se encuentra.
Empezemos por el principio.
Las directivas pueden cambiar la apariencia o el comportamiento del DOM.
Ejemplos de directivas son el ngIf, ngFor... seguro que te suenan 😁
Hay distintos tipos de directivas:
Para generar nuestra directiva utilizaremos el siguiente comando del Angular CLI:
ng generate directive [nombre de la directiva]
O también podemos usar su forma abreviada:
ng g d [nombre de la directiva]
Después de ejecutar el comando anterior se nos crearán dos archivos, el de test y el ts.
}HostListener()
. Este decorador escuchará eventos del DOM, en concreto nosotros queremos escuhar los errores, para cuando aparezca el error de que no existe la imagen podamos ejecutar un método que programaremos. ElementRef
Crearemos el metódo cargaImagenNoDisponible()
; lo que hará será cargar en la propiedad src del ElementRef la ruta de nuestra imagen que queremos que se muestre cuando haya un error de imagen no encontrada.
cargaImagenNoDisponible(): void { this.elementImg.nativeElement.src='la ruta de tu imagen por defecto si hay un error'; }
import { Directive, ElementRef, HostListener } from '@angular/core'; @Directive({ selector: '[appImagenNoDisponible]' }) export class ImagenNoDisponibleDirective { constructor(private elementImg:ElementRef) { } @HostListener('error') cargaImagenNoDisponible(): void { this.elementImg.nativeElement.src='la ruta de tu imagen por defecto si hay un error'; } }
Por último, añade la directiva a tu etiqueta img
<img appImagenNoDisponible src="ruta_de_tu_imagen"/>
Hasta luego 🖖