javascript - 当 aot 设置为 true 时,ngClass 和 ngIf 条件无法编译

标签 javascript angular typescript angular8 angular-aot

我有一个带有 ngClass 条件的 div:

<div [ngClass]="{ 'active': nbActive === 1 }" >
    <!-- some stuff -->
</div>

还有一个带有 ngIf 条件的类似 div:

<div *ngIf="nbActive === 1">
    <!-- some stuff -->
</div>

以下是 NbActive 声明:

export class WhyChooseUsComponent implements OnInit {
   nbActive: 0;
   constructor() { }
   // some stuff
}

如果在我的生产配置中,我设置:

"aot": true,
"buildOptimizer": true,

然后我收到以下错误:

This condition will always return 'false' since the types '0' and '1' have no overlap.

如果将 aotbuildOptimizer 设置为 false,我不会收到任何错误,并且一切都按预期工作。
这个问题从何而来?我该如何解决这个问题?

最佳答案

你写了

   nbActive: 0;

这意味着 nbActive 唯一可接受的值为 0。

您可能需要这个:

   nbActive: number = 0;

关于javascript - 当 aot 设置为 true 时,ngClass 和 ngIf 条件无法编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58095236/

相关文章:

javascript - Onsubmit 事件拒绝触发

Angular CDK 门户从门户内分离

javascript - Angular 7 : passing parameters to other component error

javascript - *ngFor 在 ng-content Angular 的元素上

Angular2 向 DOM 树发出事件

javascript - 如何在 TypeORM 中检索关联数据和关系数据?

javascript - 识别 Ext.Component、Ext.Element 和 HTMLElement

javascript - 使用折叠菜单

javascript - 给定计数的随机数

javascript - 是否可以将参数传递给 jQuery .on 处理程序?