當您使用[ngClass]="{'warnColor gray1': alerts[0].error == 0, 'warnColor red': alerts[0].error != 0}"
的ngClass
指令被稱爲格式化駝峯到別的東西。這裏是source code供參考。
private _toggleClass(klass: string, enabled: any): void {
klass = klass.trim();
if (klass) {
klass.split(/\s+/g).forEach(klass => { this._renderer.setElementClass(this._ngEl.nativeElement, klass, !!enabled); });
}
}
該指令的_toggleClass
方法實際上移除並設置元件上的類。在你的情況下,它被稱爲兩次。
首播時間: klass
爲warnColor gray1
,enabled
是true
作爲條件爲真
這將設置你的元素上兩節課,如果_toggleClass
方法設置一個斷點,你可以看到,其實兩者warnColor
和gray1
類應用於元素。
二時間: klass
是warnColor red
,enabled
是false
的條件計算爲false
這從你的元素去掉兩個類,即warnColor
和red
,現在warnColor
類是在第一步驟中應用,但現在它已經在最後你將被刪除,只有類gray1
。
所以不是我推薦這個語法通用類:
<div class="warnColor" [ngClass]="{'gray1': alerts[0].error == 0, 'red': alerts[0].error != 0}">
Some html
</div>
關於語法,它是正確的。你還可以描述警報的樣子嗎? – trungk18
你嘗試過[ngClass] =「{'warnColor gray1':alerts [0] .error == 0,'warnColor':alerts [0] .error!= 0,'red':alerts [0] .error != 0}「' –