Negli script #183 e #184 abbiamo visto come utilizzare le pipe predefinite. In questo script ci occupiamo invece di creare pipe custom che ci permettano di peronalizzare l'output di un valore in binding. Il primo passo per creare una pipe custom consiste nell'importare l'interfaccia PipeTransform.
import { Pipe, PipeTransform } from '@angular/core';
Una volta importata l'interfaccia dobbiamo creare una classe che ne implementa i metodi. PipeTransform dichiara il metodo transform che accetta in input il valore in binding e restituisce in output il valore trasformato. Una volta creata la classe, questa va decorata con il decorator Pipe per specificare il nome della pipe.
@Pipe({name: 'FirstLetterUpperCase'}) export class FirstLetterUpperCasePipe implements PipeTransform { transform(value: string, args: string[]): any { if (!value) return value; return value.charAt(0).toUpperCase() + value.substr(1); } }
Il primo parametro del metodo transform contiene il valore da trasformare mentre il secondo contiene la lista di eventuali parametri che servono a personalizzare ulteriorente la trasformazione. Ad esempio, nel caso di una data possiamo passare un parametro che specifica il formato della data.
Una volta creata la pipe, possiamo usarla nel binding esattamente come qualunque altra pipe.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Miglioramenti nelle performance di Angular 16
Potenziare Azure AI Search con la ricerca vettoriale
Cambiare la chiave di partizionamento di Azure Cosmos DB
Evitare la script injection nelle GitHub Actions
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Usare lo spread operator con i collection initializer in C#
Gestire i null nelle reactive form tipizzate di Angular
Gestire undefined e partial nelle reactive forms di Angular
Evitare il flickering dei componenti nel prerender di Blazor 8
Ottimizzazione dei block template in Angular 17
Sviluppare un'interfaccia utente in React con Tailwind CSS e Preline UI
Definire stili a livello di libreria in Angular