紀錄NgClass的使用方式
ngClass後面可以接三種類型的參數:
1. 字串:例如[ngClass]="'classRed, classBlue'"
2. 陣列:例如[ngClass]="['classRed', 'classBlue']"
也可以透過與Component對應的程式連動
如下面的例子
在component.html內 寫了兩個RadioButton,透過Click事件連動compontent.ts內的變數(this.spanValue),在馬上改變畫面上span內的顏色
<div class="container">
  <div class="row">
    <div>
      <div class="">
        <input name="group100" type="radio" id="radio100" (click)="RdoClick($event)" value="Red">
        <label for="radio100">Red</label>
      </div>
      <div class="">
        <input name="group100" type="radio" id="radio101" (click)="RdoClick($event)" checked value="Blue">
        <label for="radio101">Blue</label>
      </div>
      <div>
        <span [ngClass]="GetSpanClass()">會被影響顏色的文字</span>
      </div>
    </div>
  </div>
</div>
component.ts
  spanValue = 'ClassBlue';
  rdoValue = '';
  //Radion Button click event
  RdoClick($event) {
    this.rdoValue = $('input[name=group100]:checked').val().toString();
    //判斷目前Radio Button是按哪個值,修改this.spanValue
    if (this.rdoValue == 'Red') {
      this.spanValue = 'ClassRed';
    }
    else if (this.rdoValue == 'Blue') {
      this.spanValue = 'ClassBlue';
    }
  }
  //component.html內[ngClass]的值直接連動這個Method
  GetSpanClass() {
    return this.spanValue;
  }
3.以物件的方式來設定[ngClass]內的資料 例如[ngClass]="{'classA': true, 'classB': false}"
Ex:
先在component.css內定義class
.TextDone{
  text-decoration: line-through;
}
接著在之前寫的範例內測試效果
<ul>
  <li *ngFor="let item of items">
    <label for="chk_{{item.id}}">
      <input type="checkbox" name="" id="chk_{{item.id}}" [(ngModel)]="item.done" [checked]="item.done">{{item.value}}
    </label>
    <a href="#" (click)="delTodoItem(item,item.id)">  Delete</a>
    <span *ngIf="item.done" [ngClass]="{TextDone:item.done}">(已完成)</span>
  </li>
</ul>
重點是這行
<span *ngIf="item.done" [ngClass]="{TextDone:item.done}">(已完成)</span>
item.done 型態是boolean,TextDone這個class 會隨著我點選checkbox 而決定要不要出現