<p>{{ obj.prop }}</p>
...
<p [class.some-class]="booleanParam">...</p>
...
...
<button (click)="func()">Button</button>
...
...
<input type="text" name="user" [(ngModel)]="obj.prop">
<!-- Only to get input -->
<input type="text" name="user" (ngModel)="obj.prop">
<!-- Only to display value -->
<input type="text" name="user" [ngModel]="obj.prop">
...
To handle null values
...
<p>{{ obj?.prop }}</p>
<div *ngIf="obj?.prop">...</div>
...
Repeating data.
...
<p *ngFor="let obj of objs">{{ obj.prop }}</p>
...
Show / Hide content - Adds / Removes element from the DOM.
...
<p *ngIf="booleanParam">...</p>
...
Show / Hide content - Changes the visibility of the element in the DOM.
...
<p [hidden]="booleanParam">...</p>
...
Adds the matching element and removes the unmatching element from the DOM.
...
<div [ngSwitch]="obj.prop">
<p *ngSwitchCase="param">...</p>
<p *ngSwitchCase="'value'">...</p>
<p *ngSwitchDefault>...</p>
</div>
...