- Introduction to Angular
- Installing Angular CLI
- Creating Angular Application
- Running Angular Application
- Angular Application Structure
- Global Configuration Files
- Roles in Angular Application
- Introduction to Components
- Role of a Component
- Bindings in Components
- String Interpolation
- Property Binding
- Interpolation vs Property binding
- Event Binding
- Binding to Mouse, Keyboard events
- $event object
- Template Reference Variables
- Accessing User Entered data using Template Reference Variables
- Creating Custom Components
- Parent & Child Components
- Directives in Angular
- Components vs Directives
- Built-in Angular directives
- *ngIf
- *ngFor
- *ngSwitch
- ngClass
- ngStyle
- Custom Directives
- Manipulating element properties using ElementRef
- Creating elements using Renderer
- HostBinding & HostListner
Angular - Lifecycle Hooks
- Lifecycle Hooks of Components/Directives
- ngOnChanges
- ngOnInit
- ngDoCheck
- ngAfterContentInit & ngAfterContentChecked
- ngAfterViewInit & ngAfterViewChecked
- ngOnDestroy
Angular - Component Communications
- Introduction to Web Components
- Re-usable Components
- Passing data from parent to child using @Input
- Accessing data from child
- @ViewChild & @ViewChildren
- Content Projection
- @ContentChild & @ContentChildren
- Emitting data from child using EventEmitter, @Output
- Introduction to State Management
- Single Source of Truth
- Creating Services in Angular
- Dependency Injection
- Injectable Services
- Using Built-In Services
- Using Third-Party Services
- Introduction to Reactive Programming (RxJS)
- Subscriptions in Reactive Programming
- Subscriptions vs Promises
- Using HTTP Module in Angular
- Getting the data from server and displaying in the application
- Sending user submitted data to server
- Making Get, Post, Put, Delete Requests
- Error Handling
- HTTP Interceptor
Angular - Template Driven Forms
- Types of Forms in Angular
- Handling Forms with Forms Module
- One Way & Two Way Bindings in Angular
- Accessing Form Value
- Form Validations
- Touched & Un-Touched
- Dirty & Pristine
- Handling Password & Confirm Password
- Handling Check Boxes
- Handling Radio Buttons
- Handling Drop Downs
- Handling other misc input elements
- Using Reactive Forms Module
- Form Groups, Form Controls, Form Arrays
- Creating Forms using Reactive Forms in multiple ways
- Attaching Reactive Form to Template
- Subscribing to Form / Form Control Value Changes
- Form Validations
- Creating Custom Form Validators
- Resetting, Setting, Patching Form
- Parent and Child Forms
- Dynamically changing form validations
- Asynchronous Form Validators
- Creating custom asynchronous form validators
- Introduction to Routing
- Single Page Applications
- App Routing Module
- Route Modules for Root and Child
- Creating Routes
- Router Outlet and Router Link
- Redirecting Routes
- Redirecting Routes with Path Match
- Redirecting Routes Programatically
- Accessing URL Params with Activate Route Snapshot
- Subscribing to URL Params with Activated Route Snapshot
- Passing Data through Routes
- Query Params
- Accessing Query Params from URL
- Route Guards
- Can Activate Route Guard
- Can Deactivate Route Guard
- Can Load Route Guard
- Resolving Data before loading a Route
- Modularity in Angular Applications
- Creating Sub Modules
- Using Sub Modules
- Eager Loading Modules
- Lazy Loading Modules
- Pre-Loading Modules
- Pre Loading all modules
- Custom Pre Loading Strategy
- Introduction to Pipes in Angular
- Built-in Angular Pipes
- Number, Currency, Lower/Upper case pipes
- JSON Pipe
- Async Pipe
- Custom Pipes
- Creating a Custom Pipe
- Pure & Impure Pipes
- Custom Pipes with additional options