Model-view-controller architecture: AngularJS favors isolation of concerns by dividing the application into three thinly connected Components: model(dealing with records), View(UI), and Controller(logic).
Data binding: It ensures that any changes made in the model are reflected in the view and vice-versa, thus synchronizing data between the model and the view.
Dependency injection... https://blogs.sparkifysolutions.com/introduction-to-angular-js/