AngularJS is a Javascript framework which makes it incredibly easy to build web applications. AngularJS is a MV* framework where 'M' stands for the model
(i.e., data) that the view need to render, 'V' stands for the actual page
content (i.e., the DOM). The * here refers to anything (i.e., it can be a
controller, viewmodel etc., ). AngularJS is open-source and is maintained by
Google.
One great feature of AngularJS is data-binding, which makes
it special, in-fact the data-binding is 2-way, which means, if you change the
model, the view gets updated and if you change the view content, the model gets
updated. Most of the frameworks currently in the market either does not support
data-binding (i.e., the developer has to get and manually set it to the model)
or it supports only one way.
AngularJS extends the HTML vocabulary by means of custom tag
attributes called directives, thus helping the developers to teach new tricks. AngularJS
components are testable using frameworks such as Jasmine, testacular etc.,
For example you can create new tags like
<multitogglebutton id="mButton" /> which can
in turn have code to render multiple toggle buttons. This way you can create
view components that can be reused in different places.
You can also use jQuery, Zepto and other libraries inside a
directive, thus allowing developer to freely chose the libraries he likes.
AngularJS supports lot of features such as dirty checking, For
more information go to www.angularjs.org.
The AngularJS source code is made freely available on Github
under the MIT license.