The Vision Spark

Angular JS

A single-page application in open source java script framework called AngularJS Which initiated and maintained by Google. Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier. It basically works in HTML that contains additional custom tag attributes; it then obeys the directives in those custom attributes, and binds input or output parts of the page to a model represented by standard JavaScript variables. The values of those JavaScript variables can be manually set, or retrieved from static or dynamic JSON resources. AngularJS is built around the belief that declarative programming should be used for building UIs and wiring software components, while imperative programming is excellent for expressing business logic.
The framework adapts and extends traditional HTML to better serve dynamic content through two-way data-binding that allows for the automatic synchronization of models and views. As a result, AngularJS deemphasizes DOM manipulation and improves testability.
Design goals:
•    Decouple DOM manipulation from application logic. This improves the testability of the code.
•    Regard application testing as equal in importance to application writing. Testing difficulty is dramatically affected by the way the code is structured.
•    Decouple the client side of an application from the server side. This allows development work to progress in parallel, and allows for reuse of both sides.
•    Guide developers through the entire journey of building an application: from designing the UI, through writing the business logic, to testing.
Angular follows the MVC pattern of software engineering and encourages loose coupling between presentation, data, and logic components. Using dependency injection, Angular brings traditional server-side services, such as view-dependent controllers, to client-side web applications. Consequently, much of the burden on the backend is reduced, leading to much lighter web applications.
The AngularJS Boot Strapper
There are three phases of the AngularJS boot strapper that occur after the DOM completes loading:
1.    Create a new Injector
2.    Compile service – The Compile service is like compiling in C or C++. It walks the DOM and locates all the directives such as “ng-app”.
3.    Link phase – The link phase attaches all the directives to scope.