Single Page Applications can be built with Angular.js, an MVC framework. Angular.js uses controllers to set up initial state with $scope. Two-way binding with {{}} connects the view and model. Modules contain reusable code like services, directives, filters. Directives extend HTML with behaviors. Services can manipulate data and DOM. Filters format expressions. Routing with $routeProvider renders templates into ngView. Angular.js is declarative, testable and brings order to applications, though it requires learning and errors may not be visible. Version 1.2 will improve animations, aliases, error messages and documentation.