What Is AngularJS?

AngularJS is a structural framework for dynamic web apps. It lets you use HTML as your template language and lets you extend HTML’s syntax to express your application’s components clearly and succinctly. AngularJS’s data binding and dependency injection eliminate much of the code you would otherwise have to write. And it all happens within the browser, making it an ideal partner with any server technology.

AngularJS is what HTML would have been, had it been designed for applications. HTML is a great declarative language for static documents. It does not contain much in the way of creating applications, and as a result building web applications is an exercise in what do I have to do to trick the browser into doing what I want?

The impedance mismatch between dynamic applications and static documents is often solved with:

  • a library – a collection of functions which are useful when writing web apps. Your code is in charge and it calls into the library when it sees fit. E.g., jQuery.
  • frameworks – a particular implementation of a web application, where your code fills in the details. The framework is in charge and it calls into your code when it needs something app specific. E.g., durandal, ember, etc.

AngularJS takes another approach. It attempts to minimize the impedance mismatch between document centric HTML and what an application needs by creating new HTML constructs. AngularJS teaches the browser new syntax through a construct we call directives. Examples include:

  • Data binding, as in {{}}.
  • DOM control structures for repeating, showing and hiding DOM fragments.
  • Support for forms and form validation.
  • Attaching new behavior to DOM elements, such as DOM event handling.
  • Grouping of HTML into reusable components.

Course Overview


Introduction to AngularJS,
AngularJS Hello World,
Key Players in AngularJS

Views, Directives and Filters

Data Binding Overview,
Directives and Expressions,
Directives and Expressions in Action,
Additional Directives,
Iterating Over Data,
ng-repeat in Action,
Sorting and Formatting Data,
Formatting Data with Filters,
Sorting and Filtering Data with Filters,
Dynamic Sorting with the orderBy Filter

Controllers, Scope and Modules

AngularJS Architecture Patterns,
The Role of Controllers,
Creating a Controller,
A Quick Note About Stand-Alone Controller Functions,
The ng-controller Directive,
Hooking a View to a Controller,
Using “Controller As” Syntax,
The Role of Modules, Creating a Module,
Adding a Controller to a Module,
Options for Adding a Controller into a Module,
Parameter Injection Techniques


Routing Overview,
Referencing the ngRoute Module,
Adding the ngRoute Script into an Application,
Configuring Routes,
Using $routeProvider to Configure Routes,
Using the ng-view Directive,
Adding ng-view to a Page,
Adding Another Route,
View, and Controller

Factories and Services

Creating a Factory, Refactoring Code into a Factory,
Injecting a Factory into a Controller,
Creating a Service, Refactoring Code into a Service,
Defining Application Values,
Defining Values and Constants,
Making Ajax Calls from a Factory/Service,
RESTful Services: A Quick Note About Node.js Express Versions,Creating a RESTful Service,Using the $http Service,Wiring Promises to Success and Error Callbacks,Using the $log Service

UI and Animation

Adding Bootstrap Classes,
Animation Overview,
Animation Examples and Resources,
The ngAnimate Module,
Adding the ngAnimate Script and Module, Defining Animations in CSS, Creating a Stylesheet with CSS Transitions, Referencing Animation Classes,
Hooking Directives to Animations

Getting Started Building Custom Directives

The Role of Directives,
Creating a Hello World Directive,
Directive Categories,
Directive Building Blocks
Shared Scope, Isolate Scope, the link() Function in Custom Directives