Explicación Signals
Completion requirements
6. Directiva destacar
6.1. Directiva + Componente
Explicación
Una directiva personalizada nos permite crear un comportamiento reutilizable para cualquier elemento HTML.
Hemos creado la directiva resaltar, que aplica estilos al elemento donde se use.
Usamos Renderer2 porque Angular necesita una forma segura y multiplataforma de modificar el DOM.
Para utilizar la directiva en un componente standalone, debemos importarla en el array imports.
Finalmente, en la plantilla usamos la directiva como un atributo HTML:
<p resaltar>Texto</p>.
Trabajando
Partimos de flujo-if.components.ts
Uso de la directiva
import { Component, signal } from '@angular/core';
import { ResaltarDirective } from '../../directivas/resaltar.directive';
@Component({
selector: 'app-flujo-if',
standalone: true,
imports: [ResaltarDirective],
templateUrl: './flujo-if.component.html',
styleUrl: './flujo-if.component.css',
})
export class FlujoIfComponent {
edad = signal(0);
actualizarEdad(v: string) { this.edad.set(Number(v)); }
}
Ahora la usamos en la plantilla del componente flujo-if.component.html
<h2 resaltar>Ejemplo con @if + Directiva resaltar</h2>
<input type="number" (input)="actualizarEdad($event.target.value)" />
@if (edad() < 18) {
<p resaltar>Eres menor de edad.</p>
} @else {
<p>Eres mayor de edad.</p>
}