Views are used to represent the presentation layer which is provided to the end users
The Controller represents the layer that has the business logic. User events trigger the functions which are stored inside your controller. The user events are part of the controller.
Models are used to represent your data. The data in your model can be as simple as just having primitive declarations. For example, if you are maintaining a student application, your data model could just have a student id and a name. Or it can also be complex by having a structured data model. If you are maintaining a car ownership application, you can have structures to define the vehicle itself in terms of its engine capacity, seating capacity, etc.
The framework is built on the famous concept of MVC. This pattern is based on splitting the business logic layer, the data layer, and presentation layer into separate sections so that each one could be managed more easily.
Writing less code
Data Model Binding
You don't need to write special code to bind data to the HTML controls.
This can be done by Angular by just adding a few snippets of code.
Unit Testing ready
The designers at Google not only developed Angular but also developed a testing framework called "Karma" which helps in designing unit tests for AngularJS applications.
Advantage of Angular
Its Google Platform. Since it's an open source framework, you can expect the number of errors or issues to be minimal.
Routing – Angular can take care of routing which means moving from one view to another. This is the key fundamental of single page applications; wherein you can move to different functionalities in your web application based on user interaction but still stay on the same page. Angular supports testing, both Unit Testing, and Integration Testing.
It extends HTML by providing its own elements called directives. At a high level, directives are markers on a DOM element (such as an attribute, element name, and comment or CSS class) that tell AngularJS's HTML compiler to attach a specified behavior to that DOM element. These directives help in extending the functionality of existing HTML elements to give more power to your web application.