Angular offers two kinds of built-in directives: attribute directives and structural directives.
Built-in attribute directives
Attribute directives listen to and modify the behavior of other HTML elements, attributes, properties, and components. You usually apply them to elements as if they were HTML attributes, hence the name.
Many NgModules such as the RouterModule and the FormsModule define their own attribute directives. The most common attribute directives are as follows: