Technical interview Q&A plus 100+ career & HR questions—notice period, salary negotiation, resume, LinkedIn, freelancing, AI careers, and behavioral interviews with detailed, real-world answers.
40 MCQs per stack · 80% pass · certificate + per-question feedback
40 questions · 60 min · Pass 80%
Start practice exam40 questions · 60 min · Pass 80%
Start practice exam40 questions · 60 min · Pass 80%
Start practice examAngular Angular Tutorial · Angular
introduced officially in Angular 9.
generation.
messages.
(compile only used components).
Angular Angular Tutorial · Angular
maintain Angular apps efficiently.
ng new my-angular-app
configurations.
Angular Angular Tutorial · Angular
ngular is a TypeScript-based open-source front-end web application framework
developed by Google for building single-page applications (SPAs).
Key Differences:
Feature AngularJS (v1.x) Angular (2+)
Language JavaScript TypeScript
rchitecture MVC (Model-View-Controller) Component-based
Mobile Support No Yes
Performance Slower due to two-way binding Faster with unidirectional data
flow
Dependency
Injection
Limited Robust and built-in
Real-Time Example:
Angular Angular Tutorial · Angular
directives, pipes, and services.
loading.
Angular Angular Tutorial · Angular
wait TestBed.configureTestingModule({
declarations: [MyComponent]
}).compileComponents();
fixture = TestBed.createComponent(MyComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create component', () => {
expect(component).toBeTruthy();
});
Angular Angular Tutorial · Angular
pplication's state changes. When data-bound properties change, Angular runs a change
detection cycle to check if the view needs updating.
Angular Angular Tutorial · Angular
ngular applications.
rendered on the server and sent to the client.
immediately, which they can index better.
Angular Angular Tutorial · Angular
pproach Declarative, based on directives in
template
Programmatic, model-driven in
TypeScript
Form Setup Mostly in HTML template Mostly in TypeScript code
Validation Simple, template-based More powerful, reactive & scalable
Form Control Implicitly created by Angular Explicitly created and managed
Scalability Suitable for simple forms Best for complex forms
Change
Detection
synchronous Synchronous
Testing Harder to test Easier to unit test
Angular Angular Tutorial · Angular
ng generate module admin --route admin --module app.module
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ng generate directive highlight
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
core modules.
folder structure, and coding conventions.
separate folders.
centrally.
delegate to services.
responsibility.
for services).
Angular Angular Tutorial · Angular
Answer: pp. Lazy load feature modules: Load modules on demand to improve startup time. Use state management (e.g., NgRx) when app state becomes complex. Adopt consistent routing with child routes.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
n Angular application mainly consists of:
Real-Time Example:
In a banking app:
Angular Angular Tutorial · Angular
Answer: ngular? ng serve builds and launches a development server that hosts your app locally. It watches for file changes and automatically reloads the app (live-reload). Useful during development for rapid testing. ng serve
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
Example:
@NgModule({
declarations: [MyComponent, MyDirective],
imports: [CommonModule],
exports: [MyComponent]
})
export class MyModule {}
Angular Angular Tutorial · Angular
pplications?
Angular Angular Tutorial · Angular
Change
Detection
Strategy
Description When to Use
Default Angular checks every
component in the component
tree every cycle
Simple apps or components with
frequent changes
OnPush Angular checks component only
if input references change or
events
Optimizes performance, suitable
for immutable data & smart
components
How to set OnPush:
@Component({
selector: 'app-example',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `...`
})
export class ExampleComponent {}
Key Difference:
Angular Angular Tutorial · Angular
Angular Angular Tutorial · Angular
components into HTML.
Angular Angular Tutorial · Angular
Answer: @Directive({ selector: '[appHighlight]' }) export class HighlightDirective { constructor(el: ElementRef) { el.nativeElement.style.backgroundColor = 'yellow'; } }
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
✅ Example:
<form #myForm="ngForm" (ngSubmit)="onSubmit(myForm)">
<input name="username" ngModel required minlength="4" />
<button type="submit">Submit</button>
</form>
onSubmit(form: NgForm) {
console.log(form.value);
}Angular Angular Tutorial · Angular
pplies CSS class when link's route is
ctive
✅ Example:
<a routerLink="/home" routerLinkActive="active-link">Home</a>
ctive-link is applied when the current route is /home.
ngular?
You define route parameters using : in the route path and extract them using
ctivatedRoute.
✅ Defining Route:
{ path: 'product/:id', component: ProductDetailComponent }
✅ Navigating with params:
<a [routerLink]="['/product', product.id]">View Details</a>
ngular routing?
Query params are passed using the URL (e.g., ?sort=price), and managed via the
ctivatedRoute service.
✅ Add query params:
this.router.navigate(['/products'], { queryParams: { sort: 'price' }
});
✅ Read query params:
this.route.queryParams.subscribe(params => {
console.log(params['sort']);
});
in Angular?
ctivatedRoute is a service that gives access to route-related data including:
✅ Example:
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params.subscribe(params => {
this.productId = params['id'];
});
}
Name the different types of guards.
🔸 Route Guards:
Used to control access to certain routes or components.
Guard Type Purpose
canActivate Prevents unauthorized access to a route
canActivateCh
ild
Controls access to child routes
canDeactivate Confirms navigation away (e.g., unsaved
changes)
resolve Pre-loads route data before activating the route
canLoad Prevents lazy-loaded module from loading
✅ Example:
{ path: 'admin', component: AdminComponent, canActivate: [AuthGuard]
}
ngular?
✅ Example Setup:
const routes: Routes = [
{
path: 'dashboard',
component: DashboardComponent,
children: [
{ path: 'analytics', component: AnalyticsComponent },
{ path: 'reports', component: ReportsComponent }
}
];
In Template:
<!-- dashboard.component.html -->
<router-outlet></router-outlet>
Nested components render inside the parent’s <router-outlet>.
would you use it?
canActivate is used to prevent access to a route based on conditions (like
uthentication).
✅ Use case:
Protect /admin route unless user is logged in.
✅ Implementation:
@Injectable({ providedIn: 'root' })
export class AuthGuard implements CanActivate {
constructor(private authService: AuthService, private router:
Router) {}
canActivate(): boolean {
if (!this.authService.isLoggedIn()) {
this.router.navigate(['/login']);
return false;
}
return true;
}
}
{ path: 'admin', component: AdminComponent, canActivate: [AuthGuard]
}
✅ Summary Table:
Feature Purpose
RouterModule Enables routing in Angular
routerLink Binds HTML element to a route
routerLinkAct
ive
pplies class when route is active
ctivatedRout
Provides access to route params/query params
Lazy Loading Loads feature modules only when needed
canActivate Route guard to block unauthorized access
Query Params Used for filters, search, sort
(/products?sort=price)
Nested Routes Embeds child routes within parent route
Forms in AngularAngular Angular Tutorial · Angular
Answer: TestBed is the primary API to configure and initialize the environment for unit testing Angular components and services. It allows you to declare components, provide services, import modules, and compile templates.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
JavaScript code.
producing optimized JS files.
Angular Angular Tutorial · Angular
npm install lodash
npm install --save-dev @types/lodash
ng add @angular/material
This command installs and configures Angular Material automatically.
Angular Angular Tutorial · Angular
Answer: Directives are instructions in the DOM. They help Angular extend HTML's capabilities. Types of Directives:
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
imports array.
your module’s exports array.
Example:
@NgModule({
imports: [CommonModule],
exports: [MyComponent, MyDirective]
})
export class SharedModule {}
Then import SharedModule in any module where you want to use those components.
Angular Angular Tutorial · Angular
nd configuration to manage navigation between views.
✅ Imports in App:
import { RouterModule } from '@angular/router';
You use it with RouterModule.forRoot() (for root module) or
RouterModule.forChild() (for feature modules with lazy loading).
ngular?
Routes are defined as an array of objects using the Routes type, and each route object
maps a path to a component.
✅ Example:
const routes: Routes = [
{ path: '', component: HomeComponent },
{ path: 'products', component: ProductListComponent },
{ path: 'products/:id', component: ProductDetailComponent },
{ path: '**', component: NotFoundComponent } // wildcard route
];
Tools for Managing Routes:
implemented?
🔸 Lazy Loading:
Lazy loading is a technique to load feature modules only when needed, improving initial
load performance.
✅ Implementation:
Angular Angular Tutorial · Angular
Examples:
<!-- *ngIf -->
<div *ngIf="user.isLoggedIn">Welcome, {{ user.name }}</div>
<!-- *ngFor -->
<li *ngFor="let item of items">{{ item }}</li>
Real-Time Example:
In a to-do app, *ngFor is used to loop through tasks and display them.
Angular Angular Tutorial · Angular
pplications?
Common techniques:
Angular Angular Tutorial · Angular
Angular Angular Tutorial · Angular
✅ Example:
<input name="email" ngModel required email #email="ngModel" />
<div *ngIf="email.invalid && email.touched">
<small *ngIf="email.errors?.required">Email is required</small>
<small *ngIf="email.errors?.email">Invalid email format</small>
</div>
Angular Angular Tutorial · Angular
uthorization in Angular?
roles.
Angular Angular Tutorial · Angular
✅ Example:
this.profileForm = new FormGroup({
firstName: new FormControl('', Validators.required),
lastName: new FormControl(''),
email: new FormControl('', [Validators.required,
Validators.email])
});
<form [formGroup]="profileForm" (ngSubmit)="onSubmit()">
<input formControlName="firstName" />
<input formControlName="lastName" />
<input formControlName="email" />
<button type="submit">Submit</button>
</form>
Angular Angular Tutorial · Angular
Answer: Comman Purpose ng serve Builds app in memory, runs a dev server, watches files, reloads on changes (for development) ng build Builds app to disk, generates production or development-ready output files
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
gainst XSS and CSRF?
userInput }}).
headers or cookies.
Angular Angular Tutorial · Angular
to a route).
{ path: 'products', loadChildren: () =>
import('./products/products.module').then(m => m.ProductsModule) }
Angular Angular Tutorial · Angular
rray.
Example:
class MockDataService {
getData() { return of(['mock data']); }
}
beforeEach(() => {
TestBed.configureTestingModule({
providers: [{ provide: DataService, useClass: MockDataService }]
});
});
Angular Angular Tutorial · Angular
between parties.
Angular Angular Tutorial · Angular
Answer: CommonModule provides common directives like *ngIf, *ngFor, ngClass, etc. You import it in feature modules or any module other than the root module. Don’t import BrowserModule in feature modules; instead, import CommonModule there.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
spect Constructor ngOnInit
Purpose Initializes the class Lifecycle hook, called after constructor
Use Case Inject
dependencies
Fetch data, initialize logic
Called By JavaScript engine Angular
Example:
constructor(private userService: UserService) {}
ngOnInit() {
this.userService.getUsers().subscribe(users => this.users =
users);
}
Real-Time Example:
In a profile component:
Angular Angular Tutorial · Angular
Answer: Class Role FormContr ol Tracks value and validation status of a single input FormGroup Groups multiple FormControls into a form FormArray Manages an array of FormControls or FormGroups dynamically
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ngular reuses existing DOM elements instead of recreating them.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
nd faster repeat loads.
Angular Angular Tutorial · Angular
Answer: BrowserModule includes services essential for running the app in a browser. It also exports CommonModule. Should only be imported once, in the root AppModule. It sets up things like DOM rendering, sanitization, and event handling.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ng build --prod
Angular Angular Tutorial · Angular
ngular has a built-in DI system that allows services to be injected into components or other
services.
Example:
constructor(private authService: AuthService) {}
Real-Time Example:
In an e-commerce app:
Angular Angular Tutorial · Angular
Angular Angular Tutorial · Angular
Example:
@Output() myEvent = new EventEmitter<string>();
this.myEvent.emit('some data');
Angular Angular Tutorial · Angular
ChangeDetectorRef allows you to manually control change detection:
✅ Example:
constructor(private cd: ChangeDetectorRef) {}
updateData() {
this.data = fetchNewData();
this.cd.detectChanges(); // manually trigger update
}Angular Angular Tutorial · Angular
Answer: TestBed: Core Angular testing utility to configure test modules and components. ngMocks: A library built on top of TestBed to simplify mocking and reduce boilerplate by auto-mocking components, directives, pipes, and services.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ngular?
Create a validator function returning an error object or null.
✅ Example (Custom validator checking forbidden name):
function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
const forbidden = nameRe.test(control.value);
return forbidden ? { forbiddenName: { value: control.value } } :
null;
};
}
// Usage:
new FormControl('', [forbiddenNameValidator(/admin/i)])
Angular Angular Tutorial · Angular
Example:
const routes: Routes = [
{
path: 'admin',
loadChildren: () => import('./admin/admin.module').then(m =>
m.AdminModule)
}
];
This reduces initial bundle size and improves app startup time.
Angular Angular Tutorial · Angular
Answer: @ngrx/store provides a Redux-style store implementation. It holds the application state as a single immutable object. Provides selectors to access state slices. Dispatches actions to modify the state via reducers.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
pplications?
Angular Angular Tutorial · Angular
decorators.
Decorators are functions that add metadata to classes, methods, or properties.
Common Angular Decorators:
Decorator Description
@Componen
Declares a component
@NgModule Declares a module
@Injectab
le
Declares a service for DI
@Input() Pass data from parent to child
@Output() Emit events from child to parent
@Directiv
Create custom directives
Example:
@Component({
selector: 'app-header',
templateUrl: './header.component.html'
})
Real-Time Example:
Use @Input() in a product card to pass product details from a parent
ProductListComponent.
Angular Angular Tutorial · Angular
Angular Angular Tutorial · Angular
utomatically.
detection.
✅ Example:
constructor(private ngZone: NgZone) {}
runHeavyTaskOutsideAngular() {
this.ngZone.runOutsideAngular(() => {
// code here won't trigger change detection
});
}Angular Angular Tutorial · Angular
Example with fakeAsync:
it('should fetch data asynchronously', fakeAsync(() => {
let data;
service.getData().subscribe(result => data = result);
tick(); // simulate async time passing
expect(data).toEqual(['expected data']);
}));
Angular Angular Tutorial · Angular
in the root module.
Example:
RouterModule.forRoot(routes) // for root app routing
RouterModule.forChild(childRoutes) // for feature module routing
Angular Angular Tutorial · Angular
Use case: Customized builds, code analysis, or special deployment pipelines.
Angular Angular Tutorial · Angular
component is the building block of Angular apps. Each component controls a part of
the UI.
component includes:
Example:
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.css']
})
export class LoginComponent {
// logic here
}
Real-Time Example:
In a ride-sharing app:
Angular Angular Tutorial · Angular
Answer: navigateByUrl() navigates to a given absolute URL string. Example: this.router.navigateByUrl('/home'); Unlike navigate(), it takes a URL string instead of an array of commands. Useful when you want to navigate based on a URL, not commands.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ngular for performance improvement?
Memoization:
technique to cache the results of expensive function calls and return the cached result
when inputs are the same.
How it helps:
✅ Example in Angular:
const memoizedFunction = memoize((input) => {
// expensive calculation
return result;
});
this.result = memoizedFunction(input);
You can use libraries like lodash's _.memoize or write your own.
ngular Module System
Angular Angular Tutorial · Angular
Answer: Pipes transform data in templates. Used with the pipe | operator. Angular provides built-in pipes like date, currency, uppercase, async, etc. Example: <p>{{ birthday | date:'longDate' }}</p>
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
control HTTP requests.
Example:
beforeEach(() => {
TestBed.configureTestingModule({
imports: [HttpClientTestingModule]
});
httpTestingController = TestBed.inject(HttpTestingController);
});
it('should call GET API', () => {
service.getData().subscribe(data => {
expect(data).toEqual(mockData);
});
const req = httpTestingController.expectOne('api/data');
expect(req.request.method).toBe('GET');
req.flush(mockData);
httpTestingController.verify();
});
Angular Angular Tutorial · Angular
synchronously in Angular?
Use Async Validators returning Observable<ValidationErrors | null>.
✅ Example:
function uniqueUsernameValidator(service: UserService):
syncValidatorFn {
return (control: AbstractControl): Observable<ValidationErrors |
null> => {
return service.checkUsername(control.value).pipe(
map(isTaken => (isTaken ? { uniqueUsername: true } : null))
);
};
}
// Usage:
new FormControl('', null,
uniqueUsernameValidator(this.userService));
Angular Angular Tutorial · Angular
Example:
@Pipe({ name: 'exclaim' })
export class ExclaimPipe implements PipeTransform {
transform(value: string): string {
return value + '!!!';
}
}
Use in template:
<p>{{ 'Hello' | exclaim }}</p> <!-- Outputs: Hello!!! -->
Angular Angular Tutorial · Angular
Answer: AOT compiles templates before runtime, improving startup performance. Enable via: ng build --aot Usually enabled automatically with --prod. Can be configured in angular.json: "configurations": { "production": { "aot": true } }
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
pplication?
@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
handleError(error: any) {
// log to server or show user notification
console.error('Global error:', error);
}
}
providers: [{ provide: ErrorHandler, useClass: GlobalErrorHandler }]
Angular Angular Tutorial · Angular
Answer: Validators provides built-in validators like required, minLength, maxLength, email. ✅ Example: new FormControl('', [Validators.required, Validators.email])
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
<ng-content> is used for content projection, i.e., to pass custom content into a
component from a parent.
Example:
<!-- alert.component.html -->
<div class="alert-box">
<ng-content></ng-content>
</div>
Usage:
<app-alert>
<p>Warning! Something went wrong.</p>
</app-alert>
Real-Time Example:
Reusable modal or alert components that display different messages using
<ng-content>.
Angular Angular Tutorial · Angular
Answer: ngular tests? spyOn() creates a spy on a method, allowing you to track calls and override behavior. Example: spyOn(service, 'getData').and.returnValue(of(['mock data'])); Useful for mocking service methods and verifying interactions.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ngular modules (NgModules) are containers that group related components, directives,
pipes, and services.
Purpose:
Example:
@NgModule({
declarations: [LoginComponent],
imports: [CommonModule, FormsModule],
exports: [LoginComponent]
})
export class AuthModule {}
Real-Time Example:
Angular Angular Tutorial · Angular
ngular projects?
Summary Table:
Command/File Purpose
ngular CLI Tool to scaffold, build, test Angular apps
ng serve Run dev server with live reload
ng build Compile and output build files
Production Build ng build --prod enables optimizations
ngular.json CLI workspace/project configuration
Custom Builder Extend Angular CLI build/serve functionality
OT Compilation Compile templates ahead-of-time for faster
startup
tsconfig.json TypeScript compiler options for Angular project
Testing Angular Applications
Angular Angular Tutorial · Angular
Example in angular.json:
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
}
}
Best Practices
Angular Angular Tutorial · Angular
FormBuilder helps create form controls/groups/arrays with less boilerplate.
✅ Example:
constructor(private fb: FormBuilder) {}
this.profileForm = this.fb.group({
firstName: ['', Validators.required],
lastName: [''],
email: ['', [Validators.required, Validators.email]]
});
Angular Angular Tutorial · Angular
Example:
<div *ngIf="isLoggedIn; else loginPrompt">
Welcome back!
</div>
<ng-template #loginPrompt>
Please log in.
</ng-template>
Angular Angular Tutorial · Angular
Answer: E2E testing verifies the entire application flow in a real browser environment. Tests user interactions and integration between components and backend. Ensures app works as expected from a user's perspective.
In a production Angular application, teams apply this when handling user-facing features or integration boundaries. For example, you might use it during a sprint where reliability and observability matter—logging metrics, validating edge cases, and documenting the decision in an ADR so future developers understand why the approach was chosen.
Tip: Practice aloud on Toolliyo mock interview or the Interview Q&A section before your real interview.
Angular Angular Tutorial · Angular
ngular applications.
Common Commands:
ng new my-app # Create new Angular project
ng serve # Run development server
ng generate component login # Generate component
ng build # Build for production
ng test # Run unit tests
Real-Time Example:
In a company, developers use ng generate component invoice to create a new
invoice component with all required files.
ngular Components & Templates
The @Component decorator defines a component in Angular. It tells Angular how to create
nd display the component by providing metadata such as the selector, template, and
styles.
✅ Example:
@Component({
selector: 'app-user-card',
templateUrl: './user-card.component.html',
styleUrls: ['./user-card.component.css']
})
export class UserCardComponent {}
📌 Real-Time Example:
In a CRM app, @Component({ selector: 'app-customer' }) is used to define a
reusable customer display card.
the different types.
Data binding connects the component's class logic with its template (HTML).
✳ Types of Data Binding:
Type Syntax Description
Interpolation {{ value }} Bind component data to HTML
Property Binding [property]="val
ue"
Bind DOM properties to component
Event Binding (event)="handle
r()"
Bind DOM events to component methods
Two-Way Binding [(ngModel)]="va
lue"
Sync data both ways (input ↔
component)
✅ Example:
<!-- Interpolation -->
<h1>{{ title }}</h1>
<!-- Property Binding -->
<input [value]="name" />
<!-- Event Binding -->
<button (click)="greetUser()">Greet</button>
<!-- Two-Way Binding -->
<input [(ngModel)]="username" />
in templates?
✅ Example:
<!-- *ngIf -->
<div *ngIf="isLoggedIn">Welcome, {{ user.name }}</div>
<!-- *ngFor -->
<ul>
<li *ngFor="let product of products">{{ product.name }}</li>
</ul>
📌 Real-Time Example:
E-commerce product list: *ngFor displays product cards dynamically.
ngular?
➤ Parent to Child: Use @Input()
// child.component.ts
@Input() userData: any;
<!-- parent.component.html -->
<app-child [userData]="user"></app-child>
➤ Child to Parent: Use @Output() + EventEmitter
// child.component.ts
@Output() notify = new EventEmitter<string>();
this.notify.emit('Hello Parent!');
<!-- parent.component.html -->
<app-child (notify)="handleNotification($event)"></app-child>
📌 Real-Time Example:
describe them.
Lifecycle hooks are methods that Angular calls at specific stages of a component's
existence.
🌀 Common Lifecycle Hooks:
Hook Description
ngOnInit Called once after component is initialized
ngOnChanges Called when input properties change
ngDoCheck Called during every change detection
ngAfterViewI
nit
Called after component’s view has been initialized
ngOnDestroy Cleanup just before the component is destroyed
ngOnChanges() is called whenever an @Input() property changes in the component.
✅ Example:
@Input() user: User;
ngOnChanges(changes: SimpleChanges) {
console.log('User changed:', changes.user.currentValue);
}
📌 Real-Time Example:
When a new user is selected in a dashboard, ngOnChanges() updates the user detail card
dynamically.
do you implement it?
Two-way data binding means synchronizing the view and the component model
utomatically.
✅ Syntax:
<input [(ngModel)]="username" />
Requires importing FormsModule.
📌 Real-Time Example:
In a login form, updating the email input field updates the email property in the component
instantly.
ngular provides two ways:
➤ Template-Driven Forms:
Use ngModel, required, etc.
<form #form="ngForm">
<input name="email" [(ngModel)]="email" required />
<div *ngIf="form.controls.email?.invalid">Email is required.</div>
</form>
➤ Reactive Forms:
Use FormGroup, FormControl, and Validators.
form = new FormGroup({
email: new FormControl('', [Validators.required,
Validators.email])
});
📌 Real-Time Example:
Login or signup forms showing real-time validation messages.
Use Reactive Forms to generate controls at runtime.
✅ Example:
form: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.form = this.fb.group({});
this.questions.forEach(q => {
this.form.addControl(q.key, new FormControl(''));
});
}
📌 Real-Time Example:
Survey builder where form fields change based on user selections.
be used?
ngModel is a directive that enables two-way data binding in template-driven forms.
✅ Example:
<input [(ngModel)]="name" />
Use it when:
Must import FormsModule.
📌 Real-Time Example:
Live search input field using [(ngModel)]="searchQuery" for filtering products.
ngular Directives
ttribute directives in Angular?
➤ Structural Directives:
Examples:
➤ Attribute Directives:
Examples:
✅ Real-Time Analogy:
directives in Angular?
➤ *ngIf: Conditionally displays content
<div *ngIf="isLoggedIn">Welcome!</div>
➤ *ngFor: Iterates over a list
<li *ngFor="let item of items">{{ item.name }}</li>
➤ ngSwitch: Selectively renders based on a condition
<div [ngSwitch]="status">
<p *ngSwitchCase="'active'">Active</p>
<p *ngSwitchCase="'inactive'">Inactive</p>
<p *ngSwitchDefault>Unknown</p>
</div>
ngular?
➤ Steps:
Angular Angular Tutorial · Angular
change detection automatically after they complete.
improving performance.
Angular Angular Tutorial · Angular
Example test:
describe('App E2E Test', () => {
it('should display welcome message', () => {
browser.get('/');
expect(element(by.css('h1')).getText()).toEqual('Welcome');
});
});
Run with:
ng e2e
Angular Angular Tutorial · Angular
unnecessarily.
Miscellaneous Angular Concepts
Angular Angular Tutorial · Angular
ngular?
Example:
it('should mark form invalid when empty', () => {
component.form.controls['email'].setValue('');
expect(component.form.valid).toBeFalse();
});
it('should mark form valid with correct email', () => {
component.form.controls['email'].setValue('test@example.com');
expect(component.form.valid).toBeTrue();
});
dvanced Angular Topics