Angular prevede già alcuni validator di base per le reactive form: required, min, max e così via. Questi validatori coprono le esigenze di base, ma non possono ovviamente coprirle tutte. Per coprire esigenze particolari della nostra applicazione, dobbiamo creare dei validatori custom.
Creare un validatore custom per le reactive form in Angular è tutt'altro che complicato. Si tratta di definire una funzione che a sua volta torna una funzione. Vediamo prima il codice.
export class CustomValidators { static stringNotEqual(value: string): ValidatorFn { return (control: AbstractControl): ValidationErrors | null => { if (isEmptyInputValue(control.value) || isEmptyInputValue(value)) { return null; } return value === control.value ? { 'notEqual': { 'value': value } } : null; }; } }
La funzione stringNotEqual verifica che il valore presente nel controllo della form sia diverso da un valore passato in input. La funzione accetta un parametro che rappresenta il valore che vogliamo confrontare con quello inserito dall'utente. Questa funzione torna un'altra funzione che prende in input il controllo di input. Questa seconda funzione esegue il controllo di validità e se non passa restituisce un oggetto che ha una proprietà che rappresenta il codice di errore (not-equal nel nostro caso) e eventuali valori che vogliamo restituire (possono essere utili per costruire il messaggio di errore). In caso il controllo di validità passi, allora torniamo null.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Proteggere le risorse Azure con private link e private endpoints
.NET Conference Italia 2024
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Utilizzare Azure Cosmos DB con i vettori
Eseguire query verso tipi non mappati in Entity Framework Core
Utilizzare Tailwind CSS all'interno di React: primi componenti
Eseguire query manipolando liste di tipi semplici con Entity Framework Core
Utilizzare un service principal per accedere a Azure Container Registry
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Miglioramenti nell'accessibilità con Angular CDK
Usare una container image come runner di GitHub Actions
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
I più letti di oggi
- Visualizzare contenuti Fullscreen con HTML5
- Leggere e scrivere su cookie tramite Blazor
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView
- Realizzare siti sicuri con ASP.NET Web Pages
- Il web control DropDownList di ASP.NET
- Un helper method per replicare un template per ogni proprietà con ASP.NET MVC
- Operazioni di selezione su una DataTable
- Dependency injection in ASP.NET MVC 5 con Ninject
- Aumentare la scalabilità di ASP.NET Core Web API con caching client side
- Accedere con ASP.NET ad un documento XML creato dall'oggetto recordset di ADO e ASP