Content ITV PRO
This is Itvedant Content department
Learning Outcome
4
Handle validation feedback in UI
3
Apply built-in and custom validators
2
Track form control states
1
Build Template-Driven Forms
Template-Driven Form
A Template-Driven Form is an Angular form where most of the logic is handled in the HTML template using directives like ngModel.
Examples:
Login form
Contact/Feedback form
Newsletter subscription
Creating Template-Driven Form
2. Add in module
imports: [FormsModule]1. Import FormsModule
import { FormsModule } from '@angular/forms';3. Create form in HTML
<form #userForm="ngForm" (ngSubmit)="onSubmit(userForm)">
<input
type="text"
name="username"
[(ngModel)]="user.name"
required
>
<button type="submit">Submit</button>
</form>Creating Template-Driven Form
Explanation:
name → Required for Angular to track the control
[(ngModel)] → Enables two-way data binding
(ngSubmit) → Handles form submissio
required → Introduces validation early
Flow :
Built-in Validators
Common validators:
required
minlength
maxlength
pattern
<input
type="text"
name="username"
ngModel
required
minlength="3"
>Custom Validator (Template-Driven)
Custom validation allows us to create our own rules when built-in validators are not enough.
Steps to Create Custom Validator
Create a Directive
Register it using NG_VALIDATORS
Write validation logic in validate()
Apply directive in HTML
Custom Validator (Template-Driven)
@Directive({
selector: '[noSpace]',
providers: [{ provide: NG_VALIDATORS, useExisting: NoSpaceValidator, multi: true }]
})
export class NoSpaceValidator {
validate(control: any) {
return control.value?.includes(' ')
? { noSpace: true }
: null;
}
}No Space Validator
<input name="email" ngModel noSpace>HTML Usage
"john doe" ❌ → Invalid (contains space)
"johndoe" ✅ → Valid
Handling Validation Feedback
Show errors dynamically
<input name="email" ngModel required #email="ngModel">
<p *ngIf="email.errors?.['required'] && email.touched">
Email is required
</p>Summary
5
Validation feedback improves UX
4
Built-in validators ensure data validation
3
Angular tracks form states automatically
2
ngModel enables two-way binding
1
Template-driven forms use HTML-based approach
Quiz
Which module is required for template-driven forms?
A. ReactiveFormsModule
B. FormsModule
C. HttpClientModule
D. RouterModule
Quiz-answer
Which module is required for template-driven forms?
A. ReactiveFormsModule
B. FormsModule
C. HttpClientModule
D. RouterModule
By Content ITV