Wednesday, November 28, 2012

AngularJS 1.0.3 bouncy-thunder and 1.1.1 pathological-kerning released!

What's new in these releases? A number of bugfixes, improvements to the docs, and a little refactoring to make debugging and profiling easier. In 1.1.1 pathological-kerning you'll find all the bug fixes from 1.0.3 bouncy-thunder, plus some new features to try out in your code. Most notably, in version 1.1.1 we've added the frequently requested FormController.$setpristine method, which resets a form's pristine state so that the form can be reused after submission.

For full details in both these releases, see the changelog.

Thanks to the community contributors responsible for many PRs in these releases: Josh Adams, Wes Alvaro, Godmar Back, Xiangru Chen, Dave Clayton, Jamison Dance, Tom Davis, Pedro Del Gallego, Zach Dexter, Haralan Dobrev, Benjamín Eidelman, Brian Ford, Iwein Fuld, Adrian Gheorghe, Uri Goldshtein, Kai Groner, Tom Hughes, John Hume, Iristyle, Kris Jenkins, Sudhir Jonathan, Rado Kirov, Pawel Kozlowski, Daniel Luz, Adam Macejak, Tim Macfarlane, Max Martinsson, Stein Jakob Nordbø, petrovalex, Gregory Pike, Fred Sauer, Shyam Seshadri, sgtpep, Braden Shepherdson, Dean Sofer, JP Sugarbroad, sqwishy trick, Jeremy Tymes, Anna Vester, Christian Vuerings, Kevin Western, Cameron Westland, Jonathan Zacsh, Jay Zeng, Zhenbo Zhang, Jimmy Zhuo.

In particular, thanks to Pawel Kozlowski and Peter Bacon Darwin for joining us as committers on AngularJS to help manage the pull requests for these and future releases.


1.0.3 bouncy-thunder (stable branch)

1.1.1 pathological-kerning (unstable branch)

About those directives

Turns out we forgot to publish September's meetup videos from the Mountain View meetup.  Yikes!  Well, better late than never.

Actually, this is some of our best content to date.  For the first time, Miško Hevery demystifies AngularJS Directives.  If you've struggled with some of the concepts and reasons behind writing directives, this one is for you.

As a perfect follow-up, Vojta Jína gave a presentation on writing unit tests for directives and discusses techniques to make them run quickly.

For folks just starting out with Angular, Igor Minar walked folks through the basic features of Angular in writing the ubiquitous ToDo application.

At the end, Dean Sofer (aka ProLoser), presented JobVite - a cloud-based recruiting platform written in AngularJS.

Tuesday, November 27, 2012

AngularJS Example Applications

Folks often ask us where they can find source for apps that cover more techniques than the examples on or the tutorial.  If this is your question, then this post is for you!


As part of our tutorial session for Devoxx 2012, we built this simulated take-out food ordering application.

Project URL:
What you can learn:

  • Several examples of writing directives
  • Multiple views
  • Filtering and sorting lists
  • Using local storage
  • Setting up Testacular to continuously run unit tests

Angular Fun

This one is for you CoffeeScript fans out there.  Though it's a demo app, it has many of the features you'd want in a skeleton for many real apps you'd want to create.  Nice job, Cary Landholt! 

Project URL:
Stable snapshot: (
What you can learn:

  • Form validation
  • Writing filters
  • Handling server error codes
  • Retrieving data from web services Twitter and GitHub
  • Using Angular with NodeJS, CoffeeScript, RequireJS, Grunt, LESS and Jasmine


Want to build native-looking apps using Chrome?  TextDrive is a great place to start.  Vojta Jína (the author) and Brad Green (Angular eng manager) did a Hangout video with the Chrome Apps Office Hours on this.  For another take on the same application, you can also check out this post from Google Apps team and this Google Drive tutorial which walks through building an Angular app against the Drive APIs.

Project URL:
What you can learn:

  • Using Angular to create an app around a third-party editor view (ACE editor)
  • Structuring your app with thin controllers and rich services
  • Switching between Chrome storage and local storage as appropriate for persistence
  • Writing Chrome apps using Angular


If you're looking to build an app with high curb-appeal, look no further.  wReader is another Chrome platform app that looks and feels like native desktop apps.  It is hard-wired to browse the Google Chromium blog, but it could easily be repurposed as a skeleton for other uses. Try it live here.

Project URL:
What you can learn:

  • Using directives to implement keyboard shortcuts
  • Observing and reacting to view scrolling
  • Using local storage

For more examples, please be certain to visit  You can search by the tag 'Open Source' to find more apps with source available.  And when your app is ready, please submit it for the world to see!

Monday, November 19, 2012

More AngularJS Meetup Videos

We have a few more meetup videos up on YouTube from October and November... and we welcomed a new Angular Meetup group in the Southern Hemisphere, in Sydney, Australia. You can learn more about the new Sydney group on, or check out the video from their inaugural meetup below.

$provide Methods / Building Up with AngularJS

We had two talks for our Mountain View meetup in November: Wes Alvaro presented on service providers in AngularJS, followed by a short presentation from Greg Weber on design patterns for dealing with UI complexity.
We had some issues with the video quality on this one. Slides for both the talks are available online.

AngularJS + Yeoman

For October we got a first test run of livestreaming HD on our channel from the meetup in Mountain View, CA. We're still working out the details needed to do HD and livestreams on an ongoing basis, but do check out the video from October and let us know how you like it.
Brian Ford gave a talk on Yeoman's template generators for AngularJS, with demos to show you how to get started.

Sydney Meetup

At the very first ever Sydney AngularJS meetup, John Scott hosted the introductory presentation, and Daniel Nadasi showed on how his own team at Google uses AngularJS in a real application (the Google Places Bulk Location Management Tool).