Recipes with Angular.js


This book is no longer available for sale.

Recipes with Angular.js

Practical concepts and techniques for rapid web application development

About the Book

Angular.js is an open-source Javascript MVC (Model-View-Controller) framework developed by Google. It gives Javascript developers a highly structured approach to developing rich browser-based applications which leads to very high productivity.

If you are using Angular.js, or considering it, this cookbook provides easy to follow recipes for issues you are likely to face. Each recipe solves a specific problem and provides a solution and in-depth discussion of it.

Why is this a "beta version"?

I've decided to release this book in a partially complete state and publish updates on a weekly basis.

As a reader that has the disadvantage that you get the occasional glitches. On the other hand you have the opportunity to influence the book's content. Are there some topics you would like to see covered as a recipe? Let me know by sending an email to or leave a comment on this page.

Final release published

The final version of this book was release on June 23rd 2013. Thanks again for all your support!

About the Author

Frederik Dietz
Frederik Dietz

Frederik Dietz is a software developer located in Hamburg, Germany.

Table of Contents

    • Introduction
    • Code Examples
    • How to contact me
    • Acknowledgements
  • An Introduction to Angular.js
    • Including the Angular.js Library Code in an HTML Page
    • Binding a Text Input to an Expression
    • Responding to Click Events using Controllers
    • Converting Expression Output with Filters
    • Creating Custom HTML Elements with Directives
  • Controllers
    • Assigning a Default Value to a Model
    • Changing a Model Value with a Controller Function
    • Encapsulating a Model Value with a Controller Function
    • Responding to Scope Changes
    • Sharing Models Between Nested Controllers
    • Sharing Code Between Controllers using Services
    • Testing Controllers
  • Directives
    • Enabling/Disabling DOM Elements Conditionally
    • Changing the DOM in Response to User Actions
    • Rendering an HTML Snippet in a Directive
    • Rendering a Directive’s DOM Node Children
    • Passing Configuration Params Using HTML Attributes
    • Repeatedly Rendering Directive’s DOM Node Children
    • Directive-to-Directive Communication
    • Testing Directives
  • Filters
    • Formatting a String With a Currency Filter
    • Implementing a Custom Filter to Reverse an Input String
    • Passing Configuration Params to Filters
    • Filtering a List of DOM Nodes
    • Chaining Filters together
    • Testing Filters
  • Consuming Externals Services
    • Requesting JSON Data with AJAX
    • Consuming RESTful APIs
    • Consuming JSONP APIs
    • Deferred and Promise
    • Testing Services
  • URLs, Routing and Partials
    • Client-Side Routing with Hashbang URLs
    • Using Regular URLs with the HTML5 History API
    • Using Route Location to Implement a Navigation Menu
    • Listening on Route Changes to Implement a Login Mechanism
  • Using Forms
    • Implementing a Basic Form
    • Validating a Form Model Client-Side
    • Displaying Form Validation Errors
    • Displaying Form Validation Errors with the Twitter Bootstrap framework
    • Only Enabling the Submit Button if the Form is Valid
    • Implementing Custom Validations
  • Common User Interface Patterns
    • Filtering and Sorting a List
    • Paginating Through Client-Side Data
    • Paginating Through Server-Side Data
    • Paginating Using Infinite Results
    • Displaying a Flash Notice/Failure Message
    • Editing Text In-Place using HTML5 ContentEditable
    • Displaying a Modal Dialog
    • Displaying a Loading Spinner
  • Backend Integration with Ruby on Rails
    • Consuming REST APIs
    • Implementing Client-Side Routing
    • Validating Forms Server-Side
  • Backend Integration with Node Express
    • Consuming REST APIs
    • Implementing Client-Side Routing

The Leanpub 60 Day 100% Happiness Guarantee

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

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

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) and EPUB (for phones, tablets and 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. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub