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
Creare una libreria CSS universale: i bottoni
Configurare lo startup di applicazioni server e client con .NET Aspire
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Gestione degli stili CSS con le regole @layer
Supportare lo HierarchyID di Sql Server in Entity Framework 8
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Scrivere selettori CSS più semplici ed efficienti con :is()
Testare l'invio dei messaggi con Event Hubs Data Explorer
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Estrarre dati randomici da una lista di oggetti in C#