Table of Contents

Directive ngClass

Assume we have a component called servers. ngClass directive can dynamically change the CSS class of an element. Different from ngStyle, we need a to use the component CSS file this time to set the style.

servers.component.html

ngClass take an array of 'css_class_name' : boolean expression pair. If the expression is true, it will dynamically add the css_class_name in to the related HTML element.

<p [ngClass]="{
  'redBackground':  bIsBackgroundRed,
  'greenBackground':  !bIsBackgroundRed
}">
  The button is clicked
</p>
<button (click)="onButtonClicked()">Change Color</button>

servers.component.ts

import {Component, OnInit} from '@angular/core';

@Component({
  selector: 'app-servers',
  templateUrl: './servers.component.html',
  styleUrls: ['./servers.component.css']
})
export class ServersComponent implements OnInit {
  bIsBackgroundRed: boolean;

  constructor() {
  }

  ngOnInit() {
    this.bIsBackgroundRed = false;
  }

  onButtonClicked() {
    this.bIsBackgroundRed = true;
  }
}

servers.component.css

.redBackground{
  background: indianred;
}

.greenBackground{
  background:greenyellow;
}