Angular Reactive Forms memberikan kontrol penuh atas form dan validasi. Berikut langkah membuat form data kompleks:
-
Import ReactiveFormsModule
di
app.module.ts
:
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
BrowserModule,
ReactiveFormsModule
],
...
})
export class AppModule { }
-
Buat komponen form
dengan perintah:
ng generate component complex-form
-
Definisikan form group di
complex-form.component.ts
:
import { Component } from '@angular/core';
import { FormGroup, FormControl, FormArray, Validators } from '@angular/forms';
@Component({
selector: 'app-complex-form',
templateUrl: './complex-form.component.html',
styleUrls: ['./complex-form.component.css']
})
export class ComplexFormComponent {
form = new FormGroup({
personalData: new FormGroup({
name: new FormControl('', [Validators.required, Validators.minLength(3)]),
email: new FormControl('', [Validators.required, Validators.email]),
age: new FormControl('', [Validators.required, Validators.min(1)])
}),
addresses: new FormArray([
new FormGroup({
street: new FormControl('', Validators.required),
city: new FormControl('', Validators.required),
postalCode: new FormControl('', Validators.required)
})
])
});
get addressesControls() {
return (this.form.get('addresses') as FormArray).controls;
}
}
-
Buat template form di
complex-form.component.html
: