当您使用[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}“' –