Building Web Applications with AngularJS (ANGJS) – Outline

Detailed Course Outline

Introduction and Overview

  • Features and benefits of AngularJS
  • Extending HTML for web applications
  • Separating concerns and testability

Architecting AngularJS

Assembling the application

  • Bootstrapping the application with ng–app
  • Modularising functionality with angular.module()
  • Managing dependencies with dependency injection
  • Annotating modules for minification

Coding AngularJS controllers

  • Attaching the controller with ng–controller
  • Connecting the $scope to the controller
  • Implementing controller properties and methods
  • Employing the controlleras syntax

Demystifying Angular internals

  • Dissecting the digest cycle
  • Observing expressions with $scope.$watch()
  • Integrating external libraries with $scope.$apply()

Constructing an Interactive User Interface

Applying directives to templates

  • Binding to HTML with ng–model
  • Interleaving AngularJS expressions with HTML
  • Displaying sets of data with ng–repeat
  • Piping data into AngularJS filters
  • date
  • currency
  • filter
  • orderby

Integrating forms with AngularJS

  • Manipulating forms and inputs with the form controller
  • Binding to input fields
  • text
  • date
  • radio
  • checkbox
  • select
  • Toggling form control state with ng–show and ng–disabled

Validating form input

  • Exploiting HTML5 attributes: required, min, max, pattern
  • Harnessing $error, $dirty, and $invalid in expressions
  • Styling with Angular CSS classes: ng–valid, ng–invalid, ng–pristine, ng–dirty

Designing a Polished User Interface

Working with images and links

  • Binding image source URLs with ng–src
  • Incorporating bound links with ng–href

Supporting internationalisation and accessibility

  • Providing local rules
  • Applying localisation with ngPluralize and ngMessageFormat
  • Leveraging the ngAria module

Harnessing AngularJS Services

Navigating with the routing service

  • Dividing application functionality across multiple views
  • Specifying the ng–view and page layout
  • Configuring the $routeProvider service
  • Mapping route URLs to templates

Connecting to external REST API data

  • Performing CRUD operations with the $http service
  • get()
  • post()
  • delete()
  • put()
  • Retrieving JSON data asynchronously
  • Mapping JSON data into JavaScript objects

Testing AngularJS functionality

  • Unit testing controllers with Jasmine
  • Mocking HTTP with $httpbackend

Extending AngularJS

Developing custom components

  • Selecting the appropriate provider
  • constant
  • value
  • factory
  • service
  • Coding a custom filter

Creating custom directives

  • Implementing restrictions for elements orattributes
  • Specifying template markup or templateUrl
  • Isolating directive scope
  • Producing one– and two–way data bindings

Animating AngularJS Applications

  • Including the ngAnimate module
  • Hooking into AngularJS animation triggers
  • Writing CSS transitions and animations
  • Incorporating drag and drop