Mastering Angular

Geared for experienced web developers new to Angular, Mastering Angular is a comprehensive hands-on foundation course that explores the latest Angular features and advances, demonstrating how to...

Read More
$2,495 USD GSA  $2,353.15
Course Code TT4168
Duration 5 days
Available Formats Classroom, Virtual
6713 Reviews star_rate star_rate star_rate star_rate star_half
Course Image

Geared for experienced web developers new to Angular, Mastering Angular is a comprehensive hands-on foundation course that explores the latest Angular features and advances, demonstrating how to solve the traditional challenges of JavaScript web application development. Students will build custom components, using application routes, form validation, and unit-testing. The course starts with an introduction of Angular CLI and TypeScript. It then delves into component-driven development with Angular components, covering data-binding, directives, services, routing, HTTP, the RxJS library, forms unit testing, and REST. Students will also learn how to add authentication, use the Material library, learn the NgRX design pattern to implement the NgRX store, make custom directives, enhance their application with animations, write an E2E test, and increase their application's efficiency by lazy loading modules and creating their own Angular library. Angular is one of the most popular JavaScript frameworks for creating web and native mobile applications by implementing several features and capabilities:

  • Single Page Applications (SPAs) load a single HTML page that is dynamically updated based on user interaction. SPAs can communicate with the server-side to load data into the application without a full-page refresh.
  • Two-way data binding means that when the data store updates, the UI is immediately updated.
  • Modules divide code into reusable parts with related components, directives, pipes, and services grouped together and can be combined with each other to create an application.
  • Angular uses a dependency injection design pattern for services, increasing code efficiency and modularity.
  • Thanks to Angular's Model-View-* architecture enforcing the Single Responsibility Principle (SRP) and Don't Repeat Yourself (DRY) techniques, coding is reduced into the smallest pieces possible.
  • The declarative user interface means the presentational logic in HTML is separated from the imperative logic and Angular binds the data together.
  • Angular is also easily integrated into other frameworks, such as Ionic.

Skills Gained

Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn to:

  • What Angular is and why should you use it
  • How Angular reduces the amount of code that you must write to add rich functionality to both existing and new web pages
  • What TypeScript is, why it is useful, and how to use it with Angular
  • How to facilitate development and deployment using Angular CLI
  • How to work with the various aspects of the Angular architecture to implement clean, responsive web interfaces
  • How Routers can support navigation within a Single Page Application
  • What the best practices are for using Angular so that it works unobtrusively and performs well
  • How to use Angular with HTTP to support JSON, REST, and other services
  • Working with the Ahead of Time compiler including its impact of developers and the development process
  • How to defend against DOM-based XSS
  • How to manage routing decisions based on pre-defined criteria such as a successful authentication
  • How to meet huge data requirements by processing asynchronous data streams with RxJS
  • Simplify server-side rendering
  • How to facilitate unit testing
  • Enhance an Angular user interface with animations and other advanced features
  • Optimize Angular applications with various tools and techniques
  • Maintain state within an Angular application

Who Can Benefit

Experienced web developers with prior HTML5, CSS3, and JavaScript experience.


This is an introductory-level course geared for experienced web developers. Icoming attendees are required to have current, hands-on experience in developing basic web applications, and be versed in HTML5, CSS3 and JavaScript. Take Before: Attendees should have experience with the topics in the following courses, or should have recently attended these as a pre-requisite:

  • TT4650 Web Essentials: HTML5 / CSS3 & JavaScript

Course Details

Detailed Course Syllabus

Session: Getting Started with Angular

Lesson: Overview of Angular Architecture

  • Angular Versioning
  • Model-View-*
  • Data Binding
  • Components and Dependency Injection
  • Services and Events
  • Common Component Lifecycles and Hooks

Lesson: TypeScript

  • Angular, ES6 and TypeScript
  • Transpilers
  • Typing and Classes
  • Abstract Classes and Interfaces
  • Annotations
  • Exercise: Angular and ES6
  • Exercise: Angular and TypeScript

Lesson: Bootstrapping with Angular CLI

  • Angular CLI Overview
  • New Projects with CLI
  • Testing and Generating with CLI
  • Angular Console

Lesson: Angular Project Structure

  • Configuration Files
  • Top-Level Directories
  • Contents of app folder
  • Lab: Creating Projects with Angular CLI

Session: Working with Angular

Lesson: Components and Events

  • Data Binding and Components
  • Event Binding
  • Custom Events
  • Parent/Child Events
  • EventEmitter/emit()
  • Lab: Nested Components

Lesson: Third Party Libraries

  • Angular and the Need for Libraries
  • Options for adding Libraries
  • Working with npm install
  • Working with angular.json
  • ng2 Wrappers
  • Lab: Third-Party Libraries

Lesson: Dynamic Views

  • View Encapsulation
  • Structural/Attribute Directives
  • Conditional Styling
  • Lab: Working with Directives

Lesson: Pipes

  • Overview of Pipes
  • Built-in Pipes
  • Formatting and Conversions
  • Parameterizing Pipes
  • Pure vs. Impure Pipes
  • Customizing Pipes
  • Lab: Built-in and Custom Pipes

Session: Angular Forms

Lesson: Forms and the Forms API

  • Forms and NgModel
  • NG Form Groups
  • NG Form Validation
  • Model-Driven Reactive Forms
  • FormBuilder API
  • Reactive Form Validation
  • Lab: Template-Driven Forms
  • Lab: Reactive Forms

Session: Single Page Applications and Routes

Lesson: Single Page Applications

  • Overview of the SPA Concept
  • Routing for Page Display
  • Working with ActivatedRouter
  • Location Strategies
  • Nested Routes
  • Lab: Routing

Lesson: Services and Dependency Injection

  • Angular’s DI Framework
  • Components and Injectables
  • Tree-shakeable providers
  • Service Interfaces and DI
  • Constructor Injection
  • Lab: Services

Lesson: Modules

  • Overview of Modules
  • Feature Modules
  • Feature Module Routing
  • Shared Modules
  • Lab: Modules

Session: Using RESTful Services

Lesson: Overview of REST

  • REpresentational State Transfer
  • REST and HTTP
  • REST/HTTP: Representation-Oriented
  • REST Design Principles

Lesson: Angular and REST

  • REST in Angular
  • Promises, Observables, Subject
  • HttpClient and Observables
  • async Pipes and HttpClient Interceptors

Session: Angular Best Practices

Lesson: Angular Style Guide

  • Recent Angular Improvements
  • Upgrading Angular
  • Single Responsibility Principle
  • Naming Conventions
  • Coding Conventions
  • Application Structure
  • Routing

Lesson: Taking the Next Step with Angular

  • Reactive Programming in Angular
  • Angular and Security
  • Further Enhancing the Interface
  • Testing Angular Applications
  • Optimizing Angular for the Enterprise
  • Maintaining State in Angular

Session: Reactive Programming in Angular

Lesson: Working with RxJS

  • Working with RxJS in Angular
  • RxJS Operators
  • Filtering, Combining, and Mathematical Operators
  • Callback Operators
  • Lab: Working with a REST API and RxJS

Session: Security and Authentication

Lesson: DomSanitizer

  • Defending Against XSS
  • Trusting Values with the DOMSanitizer

Lesson: JSON Web Tokens

  • Backend Authentication and SPA
  • Using JSON Web Tokens (JWT)
  • Firebase and JWT

Lesson: Route Guards

  • Overview of Route Guards
  • Route Guard CanActivate
  • Using in a Service
  • Lab: Authentication and Route Protection

Session: Enhancing the Angular App

Lesson: Angular Animations

  • Triggers, States and Styles
  • Transitions
  • Using Animations
  • Keyframes and Animations
  • Lab: Angular Animations

Lesson: Angular Material

  • Gesture Support
  • Material Icons and Components
  • Materials Themes
  • Custom Themes
  • Lab: Angular Material

Lesson: Angular Elements

  • Angular Elements Overview
  • Building a Custom Element Using Angular Elements
  • Converting into Custom Elements

Session: Deep Dive into Angular

Lesson: Testing and Angular

  • Testing Dependencies
  • Options for Testing in Angular
  • Karma
  • Jasmine
  • Protractor
  • E2E
  • Lab: Unit Testing and Debugging

Lesson: Deep Dive into Components and Directives

  • Implementing View Encapsulation
  • Content Management
  • Custom Attribute Directives
  • Listening to Host Events
  • Binding to Host Properties
  • Lab: View Child

Lesson: Deep Dive into Services and Dependency Injection

  • Hierarchical Injectors
  • Optional Dependencies
  • Host and Visibility

Session: Optimizing for the Enterprise

Lesson: Improving Performance with Ivy

  • Overview of Ivy
  • Incremental DOM and Ivy Pipes
  • Pre-compiling code with Ivy
  • Overview of Angular Universal
  • Improving User Experience with Universal
  • Pre-rendering the App on the Server

Lesson: Lazy Loading

  • Module Lazy Loading
  • Route Configuration for Lazy Loading
  • When to Preload

Lesson: Optimizing with Universal

  • Overview of Angular Universal
  • Improving the User Experience
  • Pre-rendering on the Server

Lesson: Creating Your Own Angular Library

  • Creating an Angular Library
  • Working with Angular CLI to Build the Library
  • Using the Library
  • Lab: Creating and Deploying a Library

Session: Maintain State with NgRX

Lesson: NgRX Store

  • Overview of NgRX Store
  • Actions and Reducers
  • Selectors
  • Effects
  • Lab: Maintain State with NgRX
  • Lab: NgRX for an Enterprise Application

Session: Additional Angular Topics (Time Permitting)

Lesson: ES6+

  • ES6 Classes and Modules
  • ES6 Arrow Functions and Array Methods
  • ES6 Template Literals
  • ES6 Spread Operator, Rest Parameter and Destructuring
  • Lab: Deep Dive into Object-Oriented ES6+

Lesson: Sass and SCSS for Angular and Material

  • Variables
  • Nesting
  • Partials
  • Import
  • Mixins
  • Extend/Inheritance
  • Operators
Contact Us 1-800-803-3948
Contact Us
FAQ Get immediate answers to our most frequently asked qestions. View FAQs arrow_forward