📖 Scenario: You are building a simple contact form for a website. Visitors can enter their name and email, then submit the form.
🎯 Goal: Create an Angular standalone component that shows a form with name and email fields and a submit button. When the form is submitted, the entered data should be stored in a variable.
📋 What You'll Learn
Use Angular standalone component with @Component and standalone: true
Create a reactive form with FormGroup and FormControl
Add name and email controls with empty initial values
Add a submit button that triggers a submitForm() method
Store the submitted form data in a variable called submittedData
💡 Why This Matters
🌍 Real World
Forms are everywhere on websites and apps for collecting user input like contact info, feedback, or orders.
💼 Career
Handling form submission is a fundamental skill for frontend developers working with Angular to build interactive user interfaces.
Progress0 / 4 steps
1
Set up the form controls
Create a standalone Angular component called ContactFormComponent. Inside it, create a FormGroup named contactForm with two FormControl fields: name and email, both initialized with empty strings.
Angular
Hint
Use new FormGroup with name and email as keys, each assigned new FormControl('').
2
Add the form template
Add HTML inside the component's template to create a form. Use [formGroup]="contactForm" on the <form> tag. Add two input fields bound to name and email using formControlName. Add a submit button with type submit.
Angular
Hint
Use [formGroup]="contactForm" on the form tag. Add inputs with formControlName="name" and formControlName="email". Add a submit button.
3
Add form submission logic
Add a method called submitForm() in the component class. This method should assign the current form values from contactForm.value to a new variable called submittedData. Also, add (ngSubmit)="submitForm()" to the <form> tag in the template to call this method on form submission.
Angular
Hint
Add (ngSubmit)="submitForm()" to the form tag. Create a submitForm() method that sets submittedData to this.contactForm.value.
4
Display submitted data
Below the form in the template, add a <div> that shows the submitted name and email from submittedData. Use Angular interpolation to display submittedData.name and submittedData.email. Only show this <div> if submittedData is defined using *ngIf.
Angular
Hint
Use *ngIf="submittedData" on a div. Inside, show {{ submittedData.name }} and {{ submittedData.email }} with interpolation.
Practice
(1/5)
1. What is the purpose of the (ngSubmit) directive in Angular forms?
easy
A. It binds the form inputs to component properties.
B. It listens for the form's submit event and triggers a handler function.
C. It disables the submit button when the form is invalid.
D. It styles the form elements automatically.
Solution
Step 1: Understand the role of (ngSubmit)
The (ngSubmit) directive listens for the submit event on a form element in Angular.
Step 2: Identify what happens on submit
When the form is submitted, (ngSubmit) triggers the specified handler function in the component.
Final Answer:
It listens for the form's submit event and triggers a handler function. -> Option B
Quick Check:
(ngSubmit) handles form submission event [OK]
Hint: Remember (ngSubmit) triggers code on form submit [OK]
Common Mistakes:
Confusing (ngSubmit) with input binding
Thinking (ngSubmit) disables buttons
Assuming (ngSubmit) styles forms
2. Which of the following is the correct syntax to bind an input field to a component property named username using two-way binding in Angular?
easy
A.
B.
C.
D.
Solution
Step 1: Recall two-way binding syntax
Angular uses [(ngModel)] for two-way data binding on form inputs.
Step 2: Match syntax to property
The correct syntax to bind username is <input [(ngModel)]="username">.