🚀 LEVEL UP TO SENIOR:Unlock 500+ Advanced Practical Challenges & Exercises.
🎓 COURSERA PARTNER:Earn professional Google, Meta, and IBM certificates to supercharge your resume.

Project 16: Login Screen

Angular Engineer

Builds on these lessons

Component Task

Objective

A template-driven form's local reference (#loginForm="ngForm") exposes the whole form's validity, letting you disable submit until every required field is filled.

You're building a login screen.

Task: write a LoginComponent with a template-driven form: a required username field bound via ngModel, a submit button disabled while the form is invalid, and an onSubmit handler logging the form's value.

component.ts
import { Component } from '@angular/core'; import { FormsModule, NgForm } from '@angular/forms'; @Component({ selector: 'app-login', standalone: true, imports: [FormsModule], template: ` <form #loginForm="ngForm" (ngSubmit)="onSubmit(loginForm)"> <input name="username" [(ngModel)]="username" required> <button [disabled]="loginForm.invalid">Log In</button> </form> ` }) export class LoginComponent { username = ''; onSubmit(form: NgForm) { console.log(form.value); } }

* Hint: Correct characters turn green, incorrect ones turn red.

Compiler Output
🅰️

Compile your component to see the result