在Angular 1中,下面的代码效果很好。
<div ng-class="$varA === $varB ? 'css-class-1' : 'css-class-2'">
但是当我尝试在Angular 2中做类似的事情时。它不起作用。
我已添加directives: [NgClass]
<div [ngClass]="varA === varB ? 'css-class-1' : 'css-class-2'">
我应该如何写Angular 2,谢谢!
编辑:这是我的错误,我不小心将{
}
添加到整个varA === varB ? 'css-class-1' : 'css-class-2'
。所以ngClass仍然可以在Angular 2中使用三元运算符。
答案 0 :(得分:73)
是。你写的是什么:
<div [ngClass]="varA === varB ? 'css-class-1' : 'css-class-2'">
右侧表达式的结果必须评估为以下之一:
也许您的代码中还有其他错误?
答案 1 :(得分:16)
<div [ngClass]="{'css-class-1':varA === varB, 'css-class-2': varA !== varB}">
答案 2 :(得分:3)
你可以试试以下......
对于三元运算符使用:
[ngClass]="condition1==condition2?'class-1':'class-2'"
对于多种情况使用:
[ngClass]="{'class-1':condition1==condition2, 'class-2': condition3==condition4}"
... thnks