Agile Web Development using AngularJS 1.x - The Fundamentals

AngularJS is a popular framework from Google, for creating dynamic and contemporary Web applications that require a large amount of well-structured JavaScript code. This course is based on AngularJS 1. We also have a separate course that covers Angular 2. AngularJS uses the well-proven Model-View-Controller (MVC) pattern for creating rich and complex web pages that are quicker to develop and easier to maintain. AngularJS makes JavaScript programming fun and feasible!

What you will learn:

  • JavaScript language features and best practice
  • Structure of AngularJS single page applications
  • Creating models, views, and controllers
  • Using data binding and templates
  • Using modules
  • Using services
  • Working with Ajax and REST
  • Testing techniques


Developers who want to build modern and maintainable web applications using JavaScript, HTML, and CSS.


Familiarity with HTML and JavaScript programming.

Course outline:

  • Recap Essential JavaScript Language Features:
  • JavaScript language gotchas; Using JavaScript objects; Defining new objects in JavaScript
  • Unit Testing in JavaScript:
  • Manual testing; Moving towards unit testing; Defining more flexible tests; Improving the testing experience; Automating tests; Defining setup and teardown code; Dealing with exceptions
  • Test Driven Development in JavaScript:
  • How to do test driven development; Patterns and best practice
  • Managing Scope in JavaScript:
  • Protecting the global namespace; Defining namespaces; Implementing a robust namespace factory
  • Creating AngularJS Applications:
  • Creating a project; Creating a data model; Creating a controller; Creating a view
  • Going Further with AngularJS:
  • Two-way model binding; Controller behaviours; Behaviour dependencies; Handling user interactions
  • Application Structure:
  • Filtering and ordering model data; Generating links; URL navigation; Dependency injection
  • Modules:
  • Overview of modules; Using modules to define controllers, directives, filters, and services
  • Binding and Template Directives:
  • Overview of directives; Using data binding directives; Using template directives; Partial views
  • Elements and Event Directives:
  • Using element directives; Handling events; Working with various types of attributes
  • Forms:
  • Using form elements with two-way bindings; Validating forms; Displaying validation error messages; Using form directive attributes
  • Services:
  • Overview of services; Services for expressions and errors; Services for Ajax and promises; Services for REST; Services for injection
  • Ajax and REST:
  • Round-trip vs. single page applications (SPA); Ajax; RESTful services; Promises; JSON
  • Testing Angular Code:
  • Overview; Testing with Jasmine and Chutzpah; Writing test specs in Jasmine; Setting expectations; Testing JavaScript objects; Testing Angular controllers
  • Angular BDD Workshop:
  • Requirements for the application; Defining test specs; Implementing controllers to pass the test specs; Implementing the UI views

Andy Olsen - author of the course

Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Other relevant courses

16. October
3 days
Classroom Virtual
18. September
3 days
Classroom Virtual
25. September
3 days
Classroom Virtual
30. September
5 days
Classroom Virtual