Advanced Angular

Take your skills to the next level with Accelebrate's Advanced Angular training. Students gain an understanding of application architecture and design best practices in Angular, as well as learn how...

Read More
Duration 2 days
Available Formats Classroom
7096 Reviews star_rate star_rate star_rate star_rate star_half

“Really enjoyed this course. Eric Greene did a great job explaining concepts, diagramming how things integrate, and going in depth into why technologies work a certain way. Liked the hands-on coding experience with the labs and the follow-along coding exercises.

Also really liked how approachable and non-judgmental the instructor is. He was open to answering any question - large or small - and welcomed going over concepts for anyone that didn't understand.”

Course Image

Take your skills to the next level with Accelebrate's Advanced Angular training. Students gain an understanding of application architecture and design best practices in Angular, as well as learn how to authenticate, unit test, and manage application state in an Angular application.

  • This course is appropriate for all versions of Angular since version 2 and is current through Angular 9.

Skills Gained

All students will:

  • Unit test all parts of an application including Components, Services, and Pipes
  • Understand RxJS and Observables and where they can be used
  • Implement Authentication and Authorization in an Angular Application
  • Optimize Angular Performance by changing Change Detection Strategies
  • Setup new projects from scratch using the Angular CLI
  • Scaffold modules, components, services, models, routes, and unit tests in accordance with best practices using the Angular CLI
  • Build and deploy an application to production using the Angular CLI
  • Write End-to-End Tests (optional; taught only if this applies to your group)
  • Upgrade an existing application from AngularJS to Angular 9 (optional; taught only if this applies to your group)


Students should have taken Accelebrate's Introduction to Angular 7 class or have the equivalent experience.

Course Details

Software Requirements

  • Google Chrome
  • Other modern browsers as desired
  • IDE/development environment of your choice
  • Other free software and lab files that Accelebrate would specify

Angular Training Outline


Unit Testing

  • Tools: Jasmine, Karma
  • Jasmine Syntax: describe, it, beforeEach, afterEach, matchers
  • Setup and your First Test
  • Testing Terminology: Mock, Stub, Spy, Fakes
  • Angular Testing Terminology: TestBed, ComponentFixture, debugElement, async, fakeAsync, tick, inject
  • Simple Component Test
  • Detecting Component Changes
  • Testing a Component with properties (inputs) and events (outputs)
  • Testing a Component that uses the Router
  • Testing a Component that depends on a Service
  • Testing a Service and Mocking its HTTP requests
  • Testing a Pipe

RxJS and Observables

  • What is an Observable?
  • Creating Observables
  • What is an Observer?
  • Observer Example
  • Operators: map, switchMap, debounceTime, distinctUntilChanged
  • Practical Application of using RxJS
  • Subject
  • Subject Example
  • EventEmitter or Observable


  • Best Practices
  • Preventing Cross-site Scripting (XSS)
  • Trusting values with the DOMSanitizer
  • HTTP Attacks (CSRF and CSSI)
  • Authentication using JSON Web Tokens (JWT)
  • Authorization: Router Guards

Change Detection

  • Understanding Zone.js and Change Detection
  • Change Detection Strategies Default and OnPush

Advanced Angular CLI

  • Customizing a build using Builder APIs in the CLI
  • Generating web workers

Advanced Routing

  • Lazy-loading Angular Modules (using Dynamic Imports)
  • Nested or Child Routes

Advanced Routing

  • Lazy-loading Angular Modules
  • Nested or Child Routes

Advanced Dependency Injection

  • Providers
  • Hierarchical Injection
  • providedIn options: root, module, platform, any


  • Creating a custom Pipe using PipeTransform
  • Understanding Pure and Impure Pipes


Additional Topics

npm QuickStart

  • Installing Dependencies
  • Understanding package.json and package-lock.json
  • Using npm as a Build Tool

Managing Shared Application State using ngrx and Redux

  • Benefits Overview
  • Three Principles of Redux: Single Source of Truth, State is Read-Only, Pure Functions
  • Examples of Pure Functions
  • Reducers
  • Simple ngrx Example
  • Time-traveling with Redux Devtools
  • Full ngrx Example Application

Upgrade Strategies from AngularJS

  • High-level Approaches
  • Concept Mapping AngularJS to Angular
  • UpgradeAdapter
  • What can be Upgraded or Downgraded
  • What cannot be Upgraded or Downgraded
  • UpgradeAdapter and Dependency Injection

End-to-End Testing

  • What is Protractor?
  • Why Protractor?
  • Using Locators
  • Page Objects
  • Debugging E2E Tests
Contact Us 1-800-803-3948
Contact Us
FAQ Get immediate answers to our most frequently asked qestions. View FAQs arrow_forward