Mastering web application development with angularjs
While building a client side web application only AngularJS is not used. It handles all of the Document Object Model (DOM) and AJAX glue code you once wrote by hand and puts it in a well-defined structure. That makes AngularJS opinionated about how a CRUD (Create, Read, Update, Delete) application should be built. But while it is opinionated and it also tries to make sure that its opinion is just a starting point you can easily change it. AngularJS comes with the following out of the box:-
Things need to build a CRUD application in a cohesive set environment :- basic templating directives,form validation, data-binding, routing, deep-linking, reusable components and dependency injection.
Testability story :- Unit testing, end to end testing, mocks and test harnesses. Seed application with directory layout and test scripts as well as a starting point.
AngularJS include some design goals:-
1- To decouple the client side of an application from the server side. This allows for development work to progress in parallel, and also allows for reuse of both sides.
2- To decouple DOM manipulation from application logic and the difficulty of this is dramatically affected by the way the code is structured.
3-To provide structure for the journey of building an application from designing the user interface (UI), through writing the business logic used to testing.