Angular Essentials – Introduction to Angular

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 (and vice versa).
  • 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’s data binding. 
  • Angular is also easily integrated into other frameworks, such as Ionic. 


This class 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 to 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.

Course Information

Price: $2,595.00
Duration: 5 days
Certification: 
Exam: 
Learning Credits:
Course Delivery Options

Check out our full list of training locations and learning formats. Please note that the location you choose may be an Established HD-ILT location with a virtual live instructor.

Train face-to-face with the live instructor.

Access to on-demand training content anytime, anywhere.

Attend the live class from the comfort of your home or office.

Interact with a live, remote instructor from a specialized, HD-equipped classroom near you. An SLI sales rep will confirm location availability prior to registration confirmation.

All Sunset Learning dates are guaranteed to run!

Register

Prerequisites:

In order to be successful in this class, incoming attendees are required to have current, hands-on experience in developing basic web applications, and be versed in HTML5, CSS3, and JavaScript. 


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

 

Target Audience:

This is an introductory level Angular development course but an intermediate level web development class, designed for experienced web developers that need to further extend their skills in web development. 

 

Course Objectives:

At the end of this three-day course, students will have an application up and running that incorporates components, directives, custom pipes, reactive forms, routes, services, and the REST API.  


Working within 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 
  • Best practices for Angular so that it works unobtrusively and performs well

 

Course Outline:

Please note that this list of topics is based on our standard course offering, evolved from typical industry uses and trends. We’ll work with you to tune this course and level of coverage to target the skills you need most. Topics, agenda, and labs are subject to change and may adjust during live delivery based on audience needs and skill-level.


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
  • Exercise: 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()
  • Exercise: 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
  • Exercise: Third-Party Libraries

Lesson: Dynamic Views

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

Lesson: Pipes

  • Overview of Pipes
  • Built-in Pipes
  • Formatting and Conversions
  • Parameterizing Pipes
  • Pure vs. Impure Pipes
  • Customizing Pipes
  • Exercise: 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
  • Exercise: Template-Driven Forms
  • Exercise: 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
  • Exercise: Routing

Lesson: Services and Dependency Injection

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

Lesson: Modules

  • Overview of Modules
  • Feature Modules
  • Feature Module Routing
  • Shared Modules
  • Exercise: 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
  • Exercise: Working with a REST API


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: 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 
  • Exercise: Deep Dive into Object-Oriented ES6+

Lesson: Sass and SCSS for Angular and Material

  • Variables
  • Nesting
  • Partials
  • Import
  • Mixins
  • Extend/Inheritance 
  • Operators