Today lets learn how to make use of ngClass angular directive in our Ionic 2 application.
Related Read:
ngIf, index, first, last: Ionic 2
ngClass Directive: Ionic 2
Company Names: src/pages/home/home.ts
import { Component } from '@angular/core';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
items: any = [];
constructor() {
this.items = [
'Microsoft',
'Apple',
'Oracle',
'Google',
'IBM',
'Tesla',
'Technotip'
];
}
}
We have an array of company names which is being assigned to variable items.
Output
Microsoft
Apple
Oracle
Google
IBM
Tesla
Technotip
CSS Class: src/pages/home/home.scss
page-home {
.bold{
font-weight: bolder;
}
.normal{
font-weight: normal;
}
}
We define two CSS classes which we use to apply for alternate list items – using ngClass directive. Alternatively the list items appear in bold and in normal font weight.
ngClass Directive – using ternary operator: src/pages/home/home.html
< ion-header>
< ion-navbar>
< ion-title>
Company Names
< /ion-title>
< /ion-navbar>
< /ion-header>
< ion-content padding>
< ion-list no-lines>
< ion-item *ngFor="let item of items; let i = index;"
[ngClass]="(i % 2 == 0) ? 'bold' : 'normal'">
{{i+1}}. {{item}}
< /ion-item>
< /ion-list>
< /ion-content>
Here we use ternary operator and whenever i % 2 is zero we apply bold class to that item, if not we apply normal class to that list item.
ngClass Directive: src/pages/home/home.html
< ion-header>
< ion-navbar>
< ion-title>
Company Names
< /ion-title>
< /ion-navbar>
< /ion-header>
< ion-content padding>
< ion-list no-lines>
< ion-item *ngFor="let item of items; let i = index;"
[ngClass]="{'bold': (i % 2 == 0)}">
{{i+1}}. {{item}}
< /ion-item>
< /ion-list>
< /ion-content>
This is yet another way of doing the same thing which we did using ternary operator above. Here, if i % 2 is equal to zero, then bold class will be applied, if not it won’t be applied.
changing colors: src/pages/home/home.scss
page-home {
.bold{
font-weight: bolder;
color: blue;
}
.normal{
font-weight: normal;
color: green;
}
}
Alternatively the list items appear in bold and in normal font weight, along with blue and green colors respectively.