AngularJS - its turtles all the way down!
AngularJS - it’s directives all the way down
The first part of learning AngularJS is nearly always adding the attribute ng-app to your html that auto-bootstraps your AngularJS application.
You should of course use the data-* syntax if you want your html to be valid according to the HTML5 specification.
Adding the data-ng-app attribute to a html element is creating a ngApp directive that tells angular that this element is to be the root of the application.
MVC - ngModel ngView ngController
AngularJS is built in a MVC software design pattern and the building blocks are ngModel ngView and ngController.
The ngModel directive takes responsibility for managing and binding data to html elements such as a text input
The ngView directive is used by angular as a container to switch between views when used in conjunction with $route service.
The ngController directive specifies a Controller class; the class contains business logic behind the application to decorate the scope with functions and values. You can view the example below running on this codepen.