1 - About Angular JS
AngularJS can be combined with the Node.js runtime environment, the Express.js server framework and the MongoDB database to form the MEAN set.
2 - Philosophy of Angular
AngularJS is based on the idea that declarative programming must be used to build user interfaces and cabling software components, while imperative programming excels at expressing business logic5. The design of Angular is guided by several objectives:
Decouple DOM manipulations from business logic. This improves the testability of the code;
Consider the test of an application as important as writing the application itself. The difficulty of the test phase is significantly impacted by the way the code is structured;
Decouple the client and server sides of an application. This allows software development of the client and server sides to progress in parallel, and allows the reusability of each side;
Guiding developers for the duration of an application's construction: from designing the user interface, writing business logic to testing the application;
Make easy tasks easy and difficult tasks possible.
3 - Design
A web page designed with AngularJS follows the MVC (model-view-controller) architecture pattern. This boss has the advantage of offering a weak coupling between the presentation, the data, and the business components. In a web language, this separation makes it possible to reduce the importance of the DOM manipulations and to improve the testability of the code.
By offering dependency injection, Angular provides client-side web applications with traditional server-side services such as view controllers. As a result, much of the burden on the backend is removed, leading to much lighter web applications on the server side.
Moreover, AngularJS has the distinction of using (promised) promises, taken from the Q language. A promise is an asynchronous operation (it does not block the execution of the rest of the program) which will send its final result to a function of reminder as soon as it is known.6
4 - Operation
AngularJS ships a subset of the jQuery open source library called jQLite, but can also use jQuery if it is loaded7.