AngularJS is a JavaScript Framework originally created by Google which actively support its development. The main idea of AngularJS is to combine well-known components, patterns and development practices in one framework that is straightforward to use and encourages following the best practices of web development. The underlying goal is that with AngularJS Developers you can and will choose not just any solution that works, but the best known solution, the “Angular way of doing things.”
To achieve this purpose, AngularJS supports standard components such as Models, Views, Controllers and Services. This leads to Angular making use of two important software design patterns, Model View Controller and Dependency Injection. Besides that, Angular makes use of many abstractions on paying attention to balancing modularity and complexity.