Introduction: The ngIf directive is used to show or hide parts of an angular application. It can be added to any tags, it is a normal HTML tag, template, or selectors. It is a structural directive meaning that it includes templates based on a condition constrained to boolean. When the expression evaluates to true it runs/displays the template given in the “then” clause. Or when the expression evaluates to false it displays the template given in the “else” clause. If there is nothing in else clause, it will by default display blank.
Syntax:
ngIf with an "else" block
< div * ngIf = "condition; else elseStatement" >
when condition is true.
</ div >
< ng-template #elseStatement>
when condition is false.
</ ng-template >
|
It internally creates two <ng-template>
, one for “then” statement and another for “else”. So when the condition is true for ngIf, the content of the unlabelled <ng-template>
gets displayed. And when false, the labelled <ng-template>
runs.
Approach:
- As we know, ngIf else statement works on a variable that has a boolean type. Create an angular app and move to src/app. First, we need to define a variable say “check” in app.component.ts with a value true or false.
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
check:boolean = true;
}
|
- After defining a variable, move to app.component.html and create two divisions using bootstrap classes. Move into the angular app and write command npm install bootstrap. The first division is for the “true” condition and the one inside <ng-template> is for the false condition. We have declared check to be true so we get a green division saying condition true. If the check was false, a red division saying condition false would be displayed.
< div class = "container-fluid" >
< div class="row bg-success
text-light h1 justify-content-center
align-items-center" *ngIf="check;
else elseStatement"
style = "height:150px" >Condition true
</ div >
< ng-template #elseStatement>
< div class="row bg-danger
text-light h1 d-flex
justify-content-center align-items-center"
style = "height:150px" >Condition false
</ div >
</ ng-template >
</ div >
|
Output:

Output:

Advantages: