Last updated on 2016-07-28

About the Book

Covers the latest version of angular (1.2.0*)

Rapidly build faster, smaller, more advanced web apps that are simple to create, test, and maintain throughout their lifecycle. This detailed, yet step-by-step guide teaches you how to build client-side applications with AngularJS from the ground-up. AngularJS is becoming increasingly popular in the web development communities, this book will show you why. You'll work through understanding how AngularJS works, from bi-directional databinding to client-side templates.

You'll learn the deep fundamentals of AngularJS, topics including:

  • bi-directional databinding
  • dependency injection
  • scopes
  • controllers
  • routing
  • client-side templates
  • services
  • dynamic content through xhr
  • testing
  • filters
  • custom form validations
  • in-depth testing
  • custom directives
  • professional tooling
  • ie support
  • and much much more

Check out our deals and bundle packages at

  • Share this book

About the Author

Ari Lerner
Ari Lerner

Ari Lerner is a Founder of FullStack, a full-stack engineering and development shop that works with all parts of the stack. He enjoys all parts of the development ecosystem, from infrastructure deployment through to front-end application development and optimization. He co-manages and He lives in the sunny part of San Francisco.

Follow him on Github: @auser or Twitter: @auser

Table of Contents

    • Introduction
      • Foreword
      • Acknowledgments
      • About the author
      • Introduction
      • About this book
      • Organization of this book
      • Additional resources
      • Conventions used in this book
      • Development environment
    • The Basics of AngularJS
      • How Web Pages Get to Your Browser
      • What is a browser?
      • What is AngularJS
    • Data binding and your first AngularJS web application
      • Introducing data binding in AngularJS
      • Simple data-binding
      • Best data-binding practices
    • Modules
    • Scopes
      • The $scope view of the world
      • It’s just HTML
      • What can scopes do?
      • $scope lifecycle
      • Directives and scopes
    • Controllers
    • Expressions
      • Interpolating a string
    • Filters
    • Introduction to Directives
      • Directives: Custom HTML Elements and Attributes
      • Passing Data Into a Directive
    • Built In Directives
      • Basic ng attribute directives
      • Directives with child scope
    • Building an Advanced Custom Directive
      • TODO
    • Configuration
    • Multiple views and routing
      • Installation
      • Layout template
      • Routes
      • $location service
      • Routing modes
      • Other advanced routing topics
      • Routing on events
      • Form validation
    • Dependency injection
      • Annotation by inference
      • Explicit annotation
      • Inline annotation
      • $inject api
      • ngMin
    • Services
      • Registering a service
      • Using services
      • Options for creating services
      • Services in our app
    • Architecture
      • TODO
    • Communicating with the outside world: XHR and server-side communication
      • Using $http
      • Configuration object
      • Response object
      • Caching http requests
      • interceptors
      • Configuring the $httpProvider
      • Using $resource
      • Installation
      • Using $resource
      • Custom $resource methods
      • $resource configuration object
      • $resource services
      • Using Restangular
      • The what and the why
      • Installation
      • Intro to the Restangular object
      • Using Restangular
      • Configuring Restangular
    • XHR in practice
      • Cross-origin and same-origin policy
      • JSONP
      • Using CORS
      • Server-side proxies
      • Sending and receiving transformed data
      • working with json
      • working with xml
      • Authentication with AngularJS
      • Talking to MongoDB
      • Talking to CouchDB
    • Promises
      • What’s a promise?
      • Why promises?
      • Promises in Angular
      • chaining requests
    • Server communication
    • Testing
      • Why test?
      • Testing strategies
      • Getting started testing
      • Types of AngularJS tests
      • Getting started
      • Initializing Karma config file
      • Configuration options
      • Using RequireJS
      • Jasmine
      • Expectations
      • End to end introduction
      • Mocking and test helpers
      • Mocking the $httpBackend
      • Testing an app
      • Protractor
    • Angular Animation
      • Installation
      • How it works
      • Using CSS3 Transitions
      • Using CSS3 Animations
      • Using Javascript animations
      • Animating built-in directives
  • Home
  • Second
  • Home
    • Show me
    • Grow me
    • Show me
      • Building custom animations
      • Integrating with third-party libraries
    • The digest loop and $apply
      • $watch list
      • Dirty checking
      • $watch
      • $watchCollection
      • The $digest loop in a page
      • $evalAsync list
      • $apply
      • When to use $apply()
    • Demystifying angular
      • How the view works
      • Essential AngularJS extensions
      • AngularUI
      • Installation
      • ui-router
      • ui-utils
    • Mobile apps
      • Responsive web apps
      • Interaction
      • Native applications with Cordova
      • Getting started with Cordova
      • Including Angular
      • Building with Yeoman
    • Localization
      • angular-translate
    • Security
      • Strict Contextual Escaping, the $sce service
      • Whitelisting urls
      • Blacklisting urls
      • $sce API
      • Configuring $sce
      • Trusted context types
    • AngularJS and Internet Explorer
      • SEO with AngularJS
      • Getting angular apps indexed
      • Server-side
      • Options for handling SEO from the server-side
      • Taking snapshots
      • Using Zombie.js to grab html snapshots
      • Using grunt-html-snapshot
    • Building Angular Chrome apps
      • Understanding the Chrome apps
      • Building our Chrome app
      • Building the skeleton
      • manifest.json
      • tab.html
      • Loading the app in Chrome
      • The main module
      • Building the homepage
      • Sign up for wunderground’s weather API
      • A settings screen
      • Implementing a User service
      • City autofill/autocomplete
      • Sprinkling in timezone support
      • Customizing the look-and-feel
    • Debugging AngularJS
    • Next steps
      • Essential tools to know about
      • Node
      • Grunt
      • grunt-angular-templates
      • Lineman
      • Bower
      • Yeoman
      • Professional development workflow
      • Our app
      • Downloading angular
      • Booting it up
    • Modules
    • Creating our-calendar directive
      • Drawing the calendar

Authors have earned$9,196,652writing, publishing and selling on Leanpub,
earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.

Learn more about writing on Leanpub

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub