Angular 8

Inquire now

Course Overview:

The Angular 8 training course covers all major components, syntax, and tooling of the Angular web application framework. Angular 8 fulfill the expectations of modern developers who demand fast performance and responsiveness from their web applications. Participants will set up their working environment to have all the tools needed to start building Angular 8 components with minimum effort.

The program starts with an introduction of JavaScript, NPM, and TypeScript. Participant will understand TypeScript, a powerful typed super set of JavaScript that compiles to JavaScript. The course dives into component-driven development with Angular components. The participants will also learn to create and use Angular 8 Directives and Pipes. Data binding (both 1 and 2 way) is discussed in the context of the new directive API. Finally, the core parts of Angular such as services, HTTP, routing, form validation are covered to develop applications based on the Model-View-Controller (MVC) architecture.

Course Objectives:

  • Utilize the Angular core constructs to build Single Page Applications.
  • Install necessary modules correctly using NPM.
  • Write applications in TypeScript to be transferred to browser-supported JavaScript.
  • Build Template and Module-driven forms.
  • Utilize Pipes and built-in data formatting tools.
  • Setup routing and URLs.
  • Execute CRUD commands on REST APIs over Http.

Pre-requisites:

  • Before attending this course, students should have general programming experience and knowledge of HTML, CSS and JavaScript

Target Audience:

  • Web Application Developer
  • Developers

Course Duration:

  • 35 hours – 5 days

Course Content:

Day 1

Introduction

  • Overview of ES5
  • Installing Node and NPM
  • JavaScript Basic Syntax
  • Detailing on ES5 problems
  • JavaScript project creation using NPM
  • Introduction to TypeScript
  • TypeScript Environment Setup
  • Basic Syntax
  • Types, Variables and Operators
  • Decision Making
  • Loops
  • Functions and Lambda Expressions

Introduction to TypeScript

  • Classes and Objects
  • Interface
  • Inheritance
  • Generics
  • Enums
  • Number and Strings
  • Arrays
  • Tuples and Union
  • Namespaces and Modules
  • Decorators
  • Ambients
  • Mixins

Introduction to Angular

  • Angular CLI
  • Why Angular 8
  • Angular 8 Features
  • Installing and Using Angular 8
  • Creating the first Angular Project
  • Architecture Overview
  • What is new in Angular 8

Building with Components

  • Introducing the component
  • Component Decorator Properties
  • Template
  • Inline Template
  • Interpolation – Plain text, Object and Array
  • Adding CSS
  • Component Starter
  • Integrating Bootstrap
  • Summary

Day 2

Data and Event Binding

  • Binding Syntax
  • One-Way Binding
  • Property binding
  • Attribute binding
  • Setting Element Properties
  • Binding Events
  • Key event filtering
  • Template Reference Variables
  • Two-Way Binding of Input Fields

Attribute Directive

  • What are Directives
  • Directive Types
  • Apply Styles using NgClass and NgStyle
  • Applying Styles Directly
  • Obsolete Directives and Property Binding
  • Controlling Element Visibility
  • Setting Image Source Dynamically
  • Setting Hyperlink Source Dynamically
  • Creating custom Directive

Structural Directives

  • Adding and Removing Elements Dynamically
  • Looping Using ngFor
  • ngFor – Basic Syntax
  • Creating Tables with ngFor
  • ngFor Local Variables
  • Swapping Elements with ngSwitch
  • ngSwitch – Basic Syntax
  • ngSwitch – Full Template Syntax
  • Creating custom Directive

Template Driven Forms

  • A Basic Angular Form
  • Binding Input Fields
  • Accessing the Form Object
  • Binding the Form Submit Event
  • The Submit Function
  • Basic HTML5 Validation – “required” Attribute
  • Angular Validators
  • Angular Validation State
  • Displaying Form Validation State
  • Displaying Field Validation State
  • Disabling Submit when Form is Invalid
  • Submitting the Form
  • Binding to Object Variables
  • Additional Input Types
  • Checkboxes
  • Select (drop down) Fields
  • Rendering Options for Select (drop down)
  • Date fields
  • Radio Buttons
  • Summary

Day 3

Pipes and Data Formatting

  • What are Pipes?
  • Using a Built-in Pipe
  • Chaining Pipes
  • Some Pipe Examples
  • Decimal Pipe, Currency Pipe
  • Custom Pipes
  • Using Custom Pipes
  • A Filter Pipe
  • A Sort Pipe
  • Pipe Category: Pure and Impure
  • Pure Pipe Example
  • Impure Pipe Example

The Angular Component Router

  • Routing and Navigation
  • The Component Router
  • Traditional Browser Navigation
  • Component Router Terminology
  • Setting up the Component Router
  • Routes
  • The app.routes.ts File
  • Bootstrapping Routing in main.ts
  • A Basic App With Routing
  • App Routes
  • App Component
  • Programmatic Navigation
  • Basic Navigation
  • Passing Data During Navigation
  • Creating Routes with Route Parameters
  • Navigating with Route Parameters
  • Using Route Parameter Values
  • Retrieving the Route Parameter Synchronously
  • Retrieving the Route Parameter Asynchronously
  • Query Parameters
  • Query Parameters – queryParams
  • Query Parameters – Navigation
  • Retrieving Query Parameters Asynchronously

Services and Dependency Injection

  • What is a Service?
  • Creating a Basic Service
  • What is Dependency Injection?
  • What Dependency Injection Looks Like
  • Injecting Services
  • Using a Service in a Component: Dedicated Instance
  • Using a Service in a Component: Shared Instance
  • Dependency Injection and @Self
  • Dependency Injection and @Host
  • Dependency Injection and @Optional

RxJS and Observables

  • What is an Observable?
  • Introduction
  • Environment Setup
  • What are Streams
  • What is RxJS
  • RxJS Observable
  • Subject
  • Behaviour Subject
  • Core RxJS Concepts – Errors, Completion and Subscriptions
  • RxJS Operators
  • RxJS Filter Operator
  • RxJS concatMap Operator
  • RxJS mergeMap Operator
  • RxJS exhaustMap Operator
  • RxJS startWith Operator
  • Building Components with RxJS
  • Sharing HTTP Responses with the shareReplay Operator
  • Observable Concatenation
  • Understanding the merge Observable combination Strategy
  • Unsubscription
  • Summary

Day 4

HTTP Client

  • The Angular HTTP Client
  • Importing Individual Providers into Services
  • Service Using Http Client
  • Service Imports
  • What does an Observable Object do?
  • Making a Basic HTTP GET Call
  • Using the Service in a Component
  • Importing Observable Methods
  • Enhancing the Service with .map() and .catch()
  • Using .map()
  • Using .catch()
  • Using to Promise()
  • GET Request
  • GET Request with Options
  • GET Request Example
  • POST Request
  • POST Request Example
  • Reading HTTP Response Headers

Reactive Forms

  • Introduction
  • Registering the reactive forms module
  • Generating a new form control
  • Registering the control
  • Managing control values
  • Grouping form controls
  • Creating FormGroup
  • Associating the FormGroup model and View
  • Saving form data
  • Displaying the component
  • Creating nested form groups
  • Grouping the nested form in the template
  • Partial model updates
  • Generating form controls with FormBuilder
  • Injecting the FormBuilder service
  • Generating form controls
  • Simple form validation
  • Dynamic controls using form arrays

Angular Modules

  • Introduction
  • What are Modules?
  • Getting Started with Feature Modules
  • Splitting Modules Correctly
  • Adding Routes to Feature Modules
  • Component Declarations
  • Understanding Shared Modules
  • Understanding the Core Module
  • Understanding Lazy Loading
  • Implementing Lazy Loading
  • Modules & Services
  • Loading Services Differently

Dynamic Components

  • Introduction
  • Dynamic component Loading
  • The anchor directive
  • Loading Components
  • Resolving Components
  • Developing Dialog Component
  • Adding the Dialog Component
  • Summary

Day 5

Angular Material Design

  • Introduction
  • Key principles
  • Setting up Angular Material
  • Creating Material Master Module
  • First Material Components
  • Flexbox Basics
  • Adding Sidenav Component
  • Adding Responsiveness
  • Using Lists
  • Using Cards
  • Using Tabs
  • Using Tables
  • Adding Pagination
  • Adding Filtering
  • Adding Header Sorting

Angular Material Design – Dialogs and Popups

  • Adding Toolbar Menu
  • Dialog Basics
  • Creating First Dialog
  • Scaffolding a Form
  • Customizing the Form
  • Adding Form Validation
  • Using DatePicker
  • Saving the Data
  • Snackbar Notification
  • Creating Custom Themes
  • Toggling Themes
  • RTL and LTR Support

Client-Side Authentication Service

  • Introduction to Cryptographic Hashes
  • Implement a Password Policy
  • Modelling a User Session
  • Browser Cookies
  • Protect Cookies using HTTP Only Cookies
  • Client-Side User Session Management
  • Securing a REST Endpoint
  • User Login
  • Implementing Logout
  • Understanding CSRF
  • Implement CSRF double submit cookie defense
  • Introduction JSON Web Tokens
  • JSON Web Tokens In Detail – Header and Payload
  • JWT Signature With HS256 / RS256
  • Combine Cookies and JWTs
  • Setting Subject and Expiration
  • Storing JWT In Local Storage
  • Authorization Router Guard

Unit Testing

  • Introduction to Jasmine and Karma
  • Benefits of Unit Testing
  • Karma Config
  • Using – describe
  • Using – it
  • Using – beforeEach
  • Testing a Form
  • Testing a Component with Services
  • Testing an asynchronous operation
  • Summary and Closing Remarks

 

Course Customization Options

To request a customized training for this course, please contact us to arrange.

Inquire now

Best selling courses

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.