Lo stessa struttura del form mostrata nelle pubblicazioni precedenti, tipizzazione inclusa, può essere ricreata utilizzando la classe FormBuilder. Nel caso in cui volessimo disabilitare tutti i campi nulli, la stesura risulterà anche più pulita, in quanto sarà l'istanza iniettata, NonNullableFormBuilder, a creare i controlli adatti senza la necessità di specificarne l'opzione.
import { NonNullableFormBuilder } from '@angular/forms'; @Component({}) export class AppComponent { // form default profileForm = this.fb.group({ firstName: this.fb.nonNullable.control(""), lastName: '', address: this.fb.group({ street: '', city: '', }) }); // form non nullabile profileForm1 = this.fb1.group({ firstName: '', lastName: '', address: this.fb.group({ street: '', city: '', }) }); constructor(private fb: FormBuilder,private fb1: NonNullableFormBuilder) {} }
Nello snippet seguente troviamo un caso comune di definizione di un FormGroup, nel quale il form è definito all'interno dell'implementaizone dell'interfaccia OnInit. Benchè questa formulazione sia corretta, non permette all'intellisense di pre-analizzare il codice e fornire il corretto supporto allo sviluppatore. In questo caso qualsiasi valore venga richiesto sarà interpretato come tipo any.
export class AppComponent implements OnInit { profileForm:FormGroup; constructor(private fb: FormBuilder) {} ngOnInit(){ profileForm = this.fb.group({ firstName: '' lastName: '' }); // any const formValues = profileForm.value; // any const name = profileForm.value.firstName; // any const lastname = profileForm.value.lastName; } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Generare velocemente pagine CRUD in Blazor con QuickGrid
Sfruttare i KeyedService in un'applicazione Blazor in .NET 8
Usare le collection expression per inizializzare una lista di oggetti in C#
Come migrare da una form non tipizzata a una form tipizzata in Angular
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Utilizzare i primary constructor in C#
Cambiare la chiave di partizionamento di Azure Cosmos DB
Utilizzare i primary constructor di C# per inizializzare le proprietà
Proteggere le risorse Azure con private link e private endpoints
.NET Conference Italia 2024
Sfruttare al massimo i topic space di Event Grid MQTT
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub