No description or website provided.
JavaScript CoffeeScript
Pull request Compare This branch is 1 commit ahead, 271 commits behind CaryLandholt:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Angular Fun

By Cary Landholt


  • This is an attempt to play with the features of AngularJS using a structure to support large client-side applications, leverage the goodness of RequireJS, CoffeeScript, LESS, Grunt and Jasmine.
  • Demonstrates controllers, services, directives, filters, and partials
  • Uses the RequireJS text plugin to include directive partials in the minified output to reduce server requests
  • Uses Jasmine to run unit tests
  • Uses Grunt to put it all together


  • Must have Git installed
  • Must have node.js (at least v0.8.1) installed with npm (Node Package Manager)
  • You can skip this step if you wish to run Grunt local to the project - Install the following Node.js modules via the terminal. This is a one-time task as the -g switch will install the modules globally. npm install -g grunt

Install Angular Fun

Enter the following commands in the terminal.

  • git clone git://
  • cd AngularFun
  • npm install
  • grunt or "./node_modules/.bin/grunt" to run it local to the project

You are now ready to run the app. However, if you wish to run the app with optimizations (minification, etc.) turned on, enter the following command in the terminal. grunt prod This will create one JavaScript file and one CSS file to demonstrate the power of r.js, the build optimization tool for RequireJS.

Run It

  • Navigate to the root of the project
  • grunt server

Making Changes

  • grunt dev will watch for any CoffeeScript (.coffee), Less (.less), or .template file changes. When changes are detected, the files will be linted, compiled, and ready for you to refresh the browser.

Running Tests

  • Open /test/runner.html to run the unit tests using Jasmine.


  • Add many more unit tests :(
  • Add more documentation :(
  • Screencasts :)