AngularJS is an awesome javascript framework that can be used to create powerful and dynamic web apps. It also covers the building of complex client-side applications. Since its release in 2009, AngularJS has been widely used by many developers for its convenient extending of custom HTML tags and attributes, known as ‘directives’.

Application frameworks, like Backbone, EmberJS, and others, require developers to extend from JavaScript objects that are specific to their frameworks. Although this approach has its merits, it unnecessarily pollutes your object space and requires you to have intimate knowledge of abstract objects that exist in memory. But we accept it because the web wasn’t originally designed to be as interactive as we expect it to be today, and we need frameworks to help us close the gap between JavaScript and HTML.

Instead of manipulating the DOM “directly,” you annotate your DOM with metadata (directives), and Angular manipulates the DOM for you.

AngularJS also does not depend on (or exclude the use of) any other framework. You can even build AngularJS apps in non-AngularJS frameworks and it just works.