Reactive Forms: Validators
Penjelasan
Validators adalah kumpulan fungsi validasi bawaan Angular (Validators.required, Validators.minLength, Validators.email, dst) yang dipasangkan sebagai argumen kedua FormControl. Status validasi form/field bisa dicek lewat form.valid, form.get('nama')?.errors, dan ditampilkan kondisional di template.
Contoh Konsep
import { Component } from '@angular/core';
import { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';
@Component({
selector: 'app-form-produk',
standalone: true,
imports: [ReactiveFormsModule],
template: `
<form [formGroup]="form">
<input formControlName="nama" type="text">
@if (form.get('nama')?.invalid && form.get('nama')?.touched) {
<p>Nama wajib diisi, minimal 3 karakter</p>
}
<button [disabled]="form.invalid">Simpan</button>
</form>
`,
})
export class FormProdukComponent {
form = new FormGroup({
nama: new FormControl('', [Validators.required, Validators.minLength(3)]),
});
}
Praktikum
Tambahkan Validators.required dan Validators.email ke FormControl email pada form yang sudah ada. Tampilkan pesan error "Email tidak valid" kondisional saat field-nya invalid dan sudah touched.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Cek .touched (field sudah pernah disentuh/blur) SEBELUM menampilkan pesan error, bukan cuma .invalid saja — kalau tidak, pesan error akan langsung muncul SEBELUM user sempat mengisi apa pun, pengalaman yang terasa "menuduh" pengguna sejak awal.