Angular Forms
See AGENTS.md for general guidelines.
Signal-based Forms
- •Angular 21+: use signal-based forms
- •For older versions: use reactive forms (
FormGroup,FormControl)
Validation
- •Use Angular's built-in form validation — do not implement validation logic outside of Angular forms
- •Never disable the submit button based on
form.invalid - •The submit button must always be enabled
- •Never manually track validation state with custom signals or variables — derive it from the form
Submit Handling
On submit:
- •Call
form.markAllAsTouched()so validation messages appear in the UI - •Check
form.invalid— if invalid, return early - •Proceed with the actual submit logic
ts
onSubmit() {
this.form.markAllAsTouched();
if (this.form.invalid) {
return;
}
// submit logic
}