我有一个对象,它存储一个布尔值。 当我显示该对象的其他值时,我想根据该布尔值应用不同的样式。
我尝试了十几种组合:* ngClass,[(ngClass)],class.myNewClass ......
<td [ngClass]="(theBoolean ? 'classActivated' : 'classDeacticated' )">...</td>
<td [class.classActivated]="theBoolean" [class.classDeacticated]="!theBoolean" >...</td>
这两个都不起作用。我怎么能这样做?
修改 它们包含在一个tr中,它包含一个* ngFor,本身在一个表中,另一个* ngFor(因为我显示了一个对象表,其中包含一个属性也是一个表)。
EDIT2:
我从服务中获得了这些价值,这是一个Observable<myObject[]>
。所有值都在页面中正确显示,以及我在网页上显示的用于调试的布尔值。
答案 0 :(得分:4)
你的案件都应该有效。这是一个简单的plunkr示例。在提供的代码之外有些问题。尝试在Plunkr中重现您的错误或向我们展示整个组件。
答案 1 :(得分:1)
根据this的另一种工作语法:
<td [ngClass]="{'classActivated': theBoolean, 'classDeacticated': !theBoolean}">...</td>
答案 2 :(得分:0)
错误可能是省略了对象/数组元素名称。如果要对数组进行迭代(从服务获得或不获取)并且theBoolean是该数组/对象的属性,那么您应该在模板语法中指定它,如下所示:
<td [class.classActivated]="objectName.theBoolean" [class.classDeacticated]="!objectName.theBoolean" >...</td>
或
<td [ngClass]="{'classActivated': item.theBoolean, 'classDeacticated': !item.theBoolean}">...</td>
是objectName / item是theBoolean属性的持有者。