You can think of a template in angular as a domain-specific language that you can use to easily
build the view of your web application. You create a template by writing HTML and CSS, and you can
add any constructs that you want to the HTML. This means that you can attach rendering and behavior
to any HTML element, attribute or markup text.
In addition to writing HTML and CSS, you can also use the following angular constructs to create
your template:
Directive - XML attributes that augment an existing DOM element.
Markup - Lets you create shorthand for a widget or a directive. For example, markup is what
allows you to use the double curly brace notation {{}} to bind expressions to
elements.
Filter - Lets you format your data for display to the user.
Widget - Lets you create new DOM elements that the browser doesn't already understand.
Validator - Lets you validate user input.
Formatter - Lets you format the input object into a user readable view.