Course Number: ANG-172

Duration: 2 days (13 hours)

Format: Live, hands-on

Angular Training Overview

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.

Note: This course is taught in the current version of Angular at the time of teaching.

Location and Pricing

Accelebrate offers instructor-led enterprise training for groups of 3 or more online or at your site. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for private corporate training on-site or online, please contact us.

In addition, some Web Development courses are available as live, online classes for individuals.

Objectives

  • 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 to the current Angular version (optional; taught only if this applies to your group)

Prerequisites

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

Outline

Expand All | Collapse All

Introduction
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
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
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 Dependency Injection
  • Providers
  • Hierarchical Injection
  • providedIn options: root, module, platform, any
Pipes
  • Creating a custom Pipe using PipeTransform
  • Understanding Pure and Impure Pipes
Conclusion
Choose any two additional topics. If desired, the course can be customized to include more than two of these topics if other topics are scaled back or removed.
  • 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

Training Materials:

All Angular training attendees receive comprehensive courseware.

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


Here's a sample Angular lesson demonstrating how to use an Injection Token to inject services coded to an interface. You may also download the code and demos shown in the video.

See other Angular topics in our video series, 5-minute Angular Tips.

The class was very insightful and provided an extremely helpful in-depth background to the parts of Angular and Javascript that we usually ignore or forget to consider when working day to day.

 Adam C, Dell, Inc., Round Rock, TX

Learn faster

Our live, instructor-led lectures are far more effective than pre-recorded classes

Satisfaction guarantee

If your team is not 100% satisfied with your training, we do what's necessary to make it right

Learn online from anywhere

Whether you are at home or in the office, we make learning interactive and engaging

Multiple Payment Options

We accept check, ACH/EFT, major credit cards, and most purchase orders



Recent Training Locations

Alabama

Birmingham

Huntsville

Montgomery

Alaska

Anchorage

Arizona

Phoenix

Tucson

Arkansas

Fayetteville

Little Rock

California

Los Angeles

Oakland

Orange County

Sacramento

San Diego

San Francisco

San Jose

Colorado

Boulder

Colorado Springs

Denver

Connecticut

Hartford

DC

Washington

Florida

Fort Lauderdale

Jacksonville

Miami

Orlando

Tampa

Georgia

Atlanta

Augusta

Savannah

Hawaii

Honolulu

Idaho

Boise

Illinois

Chicago

Indiana

Indianapolis

Iowa

Cedar Rapids

Des Moines

Kansas

Wichita

Kentucky

Lexington

Louisville

Louisiana

New Orleans

Maine

Portland

Maryland

Annapolis

Baltimore

Frederick

Hagerstown

Massachusetts

Boston

Cambridge

Springfield

Michigan

Ann Arbor

Detroit

Grand Rapids

Minnesota

Minneapolis

Saint Paul

Mississippi

Jackson

Missouri

Kansas City

St. Louis

Nebraska

Lincoln

Omaha

Nevada

Las Vegas

Reno

New Jersey

Princeton

New Mexico

Albuquerque

New York

Albany

Buffalo

New York City

White Plains

North Carolina

Charlotte

Durham

Raleigh

Ohio

Akron

Canton

Cincinnati

Cleveland

Columbus

Dayton

Oklahoma

Oklahoma City

Tulsa

Oregon

Portland

Pennsylvania

Philadelphia

Pittsburgh

Rhode Island

Providence

South Carolina

Charleston

Columbia

Greenville

Tennessee

Knoxville

Memphis

Nashville

Texas

Austin

Dallas

El Paso

Houston

San Antonio

Utah

Salt Lake City

Virginia

Alexandria

Arlington

Norfolk

Richmond

Washington

Seattle

Tacoma

West Virginia

Charleston

Wisconsin

Madison

Milwaukee

Alberta

Calgary

Edmonton

British Columbia

Vancouver

Manitoba

Winnipeg

Nova Scotia

Halifax

Ontario

Ottawa

Toronto

Quebec

Montreal

Puerto Rico

San Juan