Negli script precedenti abbiamo visto come creare e utilizzare una template variable assegnandole il valore della direttiva ngForm. In questo script usiamo la stessa tecnica per mostrare in linea gli errori di ogni singolo campo della form.
Supponiamo di avere una form con due campi obbligatori. Il modo migliore per mostrare i messaggi di errore è visualizzarli accanto al campo invece di mostrare in fondo alla form un generico messaggio di dati non validi come visto nello script precedente. Per fare questo dobbiamo creare una template variable per ogni campo e assegnare a ogni variabile il valore della direttiva ngModel che contiene lo stato di ogni campo compreso lo stato della validazione.
<input type="text" name="description" [(ngModel)]="description" required #description="ngModel"> <span *ngIf="description.valid">obbligatorio</span> <input type="text" name="name" [(ngModel)]="name" required #name="ngModel"> <span *ngIf="name.valid">obbligatorio</span>
Come possiamo vedere, la proprieta valid della direttiva ngModel ci dice se il campo è valido o meno.
In questo modo però, quando la form si apre e i campo sono vuoti, otteniamo immediatamente il messaggio di errore.
Per la User Experience questo comportamente non è ideale, ma possiamo ricorrere alla proprietà touched di ngModel che ci dice se il campo è stato utilizzato dall'utente (ad esempio ha modificato il valore).
<input type="text" name="description" [(ngModel)]="description" required #description="ngModel"> <span *ngIf="description.touched && description.valid">obbligatorio</span> <input type="text" name="name" [(ngModel)]="name" required #name="ngModel"> <span *ngIf="name.touched && name.valid">obbligatorio</span>
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Esporre tool MCP con Azure Functions
Supporto nativo a JSON in SQL Server 2025
Blazor e Static Web Assets in .NET 10
Ricerca delle GitHub issue tramite operatori logici
Utilizzare Intersect e Except per filtrare set di dati in TSql
Utilizzo delle stepped value functions nel CSS
Analizzare il contenuto di una issue con GitHub Models e AI
Utilizzo di CSS Scroll Snap per realizzare un carousel
Esporre workflow come server MCP con Azure Logic Apps
Utilizzare i command service nei test con .NET Aspire
Integrare OpenAI tramite Aspire
Impostare automaticamente l'altezza del font tramite CSS
I più letti di oggi
- Il valore degli agenti AI cresce davvero quando possono interagire in modo sicuro con dati, servizi e backend aziendali. In questa sessione parleremo di Model Context Protocol e di come usarlo nell'ecosistema Azure per trasformare i servizi che già utilizziamo in tool pronti per scenari agentici reali. Un appuntamento utile per chi vuole capire come rendere la propria architettura agent-ready, con il giusto equilibrio tra integrazione, governance e sicurezza. Ci vediamo a Milano al Global Azure 2026 - ASPItalia.com, con Cristian Civera. #GlobalAzure #Azure #MCP #AI #AIAgents https://aspit.co/globalazure-26
- Global Azure 2026 - ASPItalia.com - Milano




