Core features
Before getting into the basics of AngularJS, you need to understand two key terms— templates and models. The HTML page that is rendered out to you is pretty much the template. So basically, your template has HTML, Angular entities (directives, filters, model variables, etc) and CSS (if necessary). The example code given below for data binding is a template.
In an SPA, the data and presentation of data is separated by a model layer that handles data and a view layer that reads
from models. This helps an SPA in redrawing any part of the UI without requiring a server round trip to retrieve HTML. When the data is updated, its view is notified and the altered data is produced in the view.