NgSwitch Directive in Angular
While this tutorial has content that we believe is of great benefit to our community, we have not yet tested or edited it to ensure you have an error-free learning experience. It's on our list, and we're working on it! You can help us out by using the "report an issue" button at the bottom of the tutorial.
This post covers Angular 2 and up
<div [ngSwitch]="dietSelection"> <p *ngSwitchCase="'gf'">Gluten-free</p> <p *ngSwitchCase="'veg'">Vegetarian / Vegan</p> <p *ngSwitchCase="'paleo'">Paleo</p> <p *ngSwitchDefault>Standard diet</p> </span>
In the above example, if dietSelection is set to ‘gf’, only the paragraph with Gluten-free will be included in the DOM. If that paragraph contained children DOM elements, these would also be included.
Notice how the syntax is slightly different than the syntax for ngIf or ngFor, with the ngSwitch used as a property binding and without the * character. Instead, the * goes with the ngSwitchCase and ngSwitchDefault directives, because they are the ones creating a template.