AngularJS is an open source web application framework designed primarily to overcome the challenges in development of single web pages. It was initially developed by the Brat Tech LLC in 2009. Now it is maintained by google and a community of individual developers. It is used for the development of dynamic web applications and moreover it is not a library, the developers need to write codes following the rules and guidelines laid out by the framework.
What makes it developers to go for it?
Data binding turns out to be simple: The data binding seems to be hectic for a developer in most of the cases. The binding directives provided by the framework binds the view to the model seamlessly.
Implementation of MVC: MVC or Model-View-Controller architecture is followed in the development of every application. Many of the frameworks provides an option to define M,V,C and allows developers to tie them up themselves. AngularJS focus only on separating out MVC and internally works on wiring.
Directives :HTML ,being the most declarative language in building static web pages fails out to do so in dynamic web development. Angular Js boost HTML with directives to enhance additional functionality. AngularJS allows developers to build their own custom HTML constructs The DOM manipulation usually done to build something new is now captured in this concept of directives, thereby separating this out from the M-V-C enhancing the modularity of the application to a great extent.
Dependency Injection: Dependency Injection is where components in an application join and depend each other. AngularJS follows dependency injection mechanism developers can easily work by dividing angularJs app into different components by which the components work depending each other will give a better result. It helps you compose your application by picking up whatever you need, without worrying where it resides and how it should be created.