Home About Courses Schedule Services Webinars Contact Search

Advanced Angular


Duration: 2.0 days

Method: Instructor led, Hands-on workshops

Price: $1125.00

Course Code: AN1015


This course teaches attendees how to take their skills to the next level by implementing an Angular application using components, templates, services, routing, and tests. This course also teaches best practices as well as the architecture and design of Angular applications.


Upon successful completion of this course, the student will be able to:

  • 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 6 (optional if applicable)


Prior experience developing with JavaScript. Experience with Angular equivalent to Introduction to Angular 2 class. Prior Angular 1 experience does not qualify due to major changes made in Angular 2.


  • I. 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 using a Spy
    • Testing a Component that depends on a Service using a Fake
    • Testing a Service and Mocking its Http requests
    • Testing a Pipe
  • II. 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
  • III. Security
    • 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
  • IV. Change Detection Strategies
    • Default
    • OnPush
  • V. Advanced Routing
    • Lazy-loading Angular Modules
    • Location Strategies
    • Nested or Child Routes
  • VI. Advanced Dependency Injection
    • Providers
    • Using the @Optional and @Host Decorators
  • VII. Pipes
    • Built-in Pipes: Using, Passing Parameters, Chaining
    • Creating a custom Pipe using PipeTransform
    • Understanding Pure and Impure Pipes
  • VIII. Angular CLI
    • Creating a New Project
    • Generating Modules, Components, Models, and Services
    • Customizing the CLI to include CSS Preprocessors (SASS) and other UI libraries: Bootstrap, Material, or Clarity
  • IX. Deploying an Angular Application to Production
    • Manually
    • Using the Angular CLI
  • X. If desired, the course can be customized to include two of these topics. If more than two are desired, other topics are scaled back or removed.
    • npm QuickStart
    • Managing Shared Application State using ngrx and Redux
    • Upgrade Strategies from AngularJS
    • End-to-End Testing
    • Creating Custom Attribute Directives
    • Webpack Guide
    • Template-driven Forms