# AngularJS 2.0 Web Development

## Overview

This course is based on V2 of the popular front end web development framework AngularJS. With AngularJS you learn one way to build applications and reuse your code and abilities to build apps for any deployment target. For web, mobile web, native mobile and native desktop.The powerful features and capabilities of Angular 2 allow you to create complex, customizable, modern, responsive and user friendly web applications. This course will use TypeScript.

## Duration

Full time 5 days.

## Programming Experience

A strong knowledge of HTML, CSS and JavaScript is required. No knowledge of TypeScript is required as we will cover it during the course.

## Private Training

This course is only offered privately. The course can be scheduled to run onsite or on our premises. A minimum of 4 delegates is required to schedule the course. The course can be run at our offices in Cape Town or Johannesburg. The price to run the course onsite is R12 599 and R15 500 on our premises. There is no fixed date to run the course, we schedule the date that suits your team.

## Course Curriculum

## What has changed since 1.0

MVC no more\
New router\
Component based design pattern

## TypeScript

Introduction to Type Script\
Building Blocks\
Modules\
Interfaces\
Class\
Functions\
Enum

Types\
Static, Dynamic & Optional Types\
Inferred Types\
Builtin Types\
Custom Types\
Type Declaration\
Type Inference

Abstractions\
Defining Interfaces\
Creating Interface Methods

Class\
Private and Public Scope\
Defining Members\
Static Functions\
Default and Optional Parameters\
Overloading functions\
Constructors\
Implementing Interfaces\
Inheritance and Polymorphism

## Introduction to AngularJS 2.0

Introduction to Angular JS\
How Angular JS is opinionated\
Difference between Angular JS 1.0 and 2.0

## AngularJS Building Blocks

Module\
Component\
Template\
Metadata\
Data Binding\
Service\
Directive\
Dependency Injection\
Anatomy of an Angular.js Applications\
Assembling applications using Modules\
Identifying UI layers for Components\
Metadata for Components

## Templates

Interpolation\
Expressions and Statements\
Bindings\
Value Binding\
Property Binding\
Event Binding\
Two way Binding

## Directives

Components\
Attribute Directives\
Structural Directives\
Using the Template Tag\
Using the "\*" in directives\
Creating Attribute directives\
Creating Structural directives\
The Directive Definition Object\
Isolated Scope\
Compilation and Linking\
Creating Components\
Extending Directives

## Pipes

Role of pipes in Angular 2 applications\
Using built in pipes\
Chaining Pipes\
Creating Custom Pipes

## Dependency Injection

Configuring the Injector\
Importing & Exporting Components\
Importing & Exporting Services\
Registering Providers\
Class Providers and Value Providers\
Factory Providers

## Forms

Building forms using components and Templates\
Two way binding\
Change Tracking using ngControl\
Validation\
Error Handling

## Routing and Navigation

Including the Router\
Configuring the routes\
Router Outlets and Links\
Using @RouteConfig Decorator\
Nested Routes\
Accessing Route Params

## Communicating with Servers

Using the http provider\
Async Programming Using Promises\
Resolving and Rejecting Promises\
Configuring the requests\
Sending Http Headers\
Caching Responses\
Request and Response Transformation\
Using RESTful Resources\
Using RxJSObjservables

## Testing

Jasmine Overview\
Writing Tests in Typescript\
Testing a Class\
Testing a Pipe\
Testing a Component\
Configure Karma to execute Tests

## Migrating from Angular 1.x

Strategies Available\
Preparation\
Upgrade Adapter\
Migrating to TypeScript


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.peruzal.com/course-outlines/angularjs-20-web-development.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
