【发布时间】:2019-02-20 20:02:28
【问题描述】:
目标:我想在循环对象时根据条件将文本更改为红色(在 Angular 6 中使用 ngClass)
这对我有用,但突然不再工作了。
我已经尝试打印到控制台...我得到了 进行中 错误的 完全的 真的
(Expected) 这让我觉得第一个应该是红色的,第二个应该是黑色的。 (实际)但它们都是黑色的。
我还尝试将变量 isComplete 重置为 false,如果它达到 else 条件。 Angular: conditional class with *ngClass
HTML:
<div class="row" *ngFor="let lesson of lessons">
<div>
<div class="flex">
<div>
Status: <span [ngClass]="(isComplete!=true)?'text-red':''">{{ lesson.Status }}</span>
</div>
</div>
</div>
</div>
打字稿:
private isComplete: boolean = false;
this.lessons.forEach(element => {
if (element.Status == "Complete") {
this.isComplete = true;
element.Status = this.var1;
}
else {
element.Status = this.var2;
}
});
【问题讨论】:
-
this.lessons的输出是什么? -
第一次:进行中第二次:完成
-
ngClass 仅根据
this.isComplete的最后一个值进行渲染,在本例中为true。您应该将 isComplete 附加到元素element.isComplete=...
标签: angular typescript boolean conditional