在编译器

时间:2017-10-19 19:35:13

标签: angular angular-cli angular2-template

我有一个用Angular 2编写的庞大代码库,我想使用angular-cli构建和优化。 ng build 工作正常。但是,当我运行 ng build --prod 时,我得到一个错误让我头撞墙。它说我有一个重复的标识符。此错误会停止输出整个dist文件夹。但我100%确定我的组件中没有重复的标识符。我无法调试任何东西,因为从不输出ng.factory文件。我该怎么告诉编译器谢谢你,但我没有重复......我知道我在做什么。

enter image description here

如果我评论链接到此组件的模板 ng build --prod 工作正常。在这个有问题的组件的模板中,我有像这样的标记

 <li class="listmathSubDomain" *ngFor="let subdomain of subjectVM.subDomainArray" [ngClass]="{'active': subdomain.Description == subjectVM.SelectedSubDomain}">

'active'如何成为重复的标识符,然后只在aot中。我是否错过了关于aot编译如何工作的重要概念。

1 个答案:

答案 0 :(得分:0)

看来这条线是AOT的罪魁祸首。

[ngClass]="{'active': math.Name == subjectVM.SelectedMathDomain,'active': math.Title == subjectVM.SelectedDomain}"

我把它改成了

[ngClass]="{'active': (math.Name == subjectVM.SelectedMathDomain || math.Title == subjectVM.SelectedDomain)}"

我想知道为什么第一行不会在JIT中抛出错误。