AngularJS is a full-featured JavaScript framework, with the core goal of simplification. It excels at building dynamic, single page web apps (SPAs) and supports the Model View Controller (MVC) programming structure. It powers sites include Google, Virgin America, and HBO’s mobile site for iPad. Other highlights:
- Open-source, front-end JavaScript framework developed by Google
- A library of JavaScript code based on standard JS and HTML, with minimal modifications (meaning, it’s less likely to break)
- Handles the heavy lifting of DOM manipulation and AJAX glue that once had to be coded from scratch
- Encourages the developer to use modular building blocks of JavaScript code that can be categorized and are easy to test
- Can be added to any HTML page with a <script> tag
Tech differentiators of AngularJS include:
- Two-way data bindings
- Controllers
- Expressions, which bind data to HTML
- $Scope, a novel way of handling variable dependency and global variables
- Directives, which extend HTML attributes. “Extending” is the key to how AngularJS works
AngularJS tackles the problem of building dynamic web apps, allowing the developer to extend the functionality of HTML by giving them the ability to create new constructs with Angular directives. This effectively abstracts away tricky DOM manipulation, reducing it to simple elements that can be embedded directly into an HTML template. The most famous example of this is two-way data binding, a once code heavy task being relegated to simply wrapping around your expression.