【问题标题】:Supress duplicate error in aot compiler抑制aot编译器中的重复错误
【发布时间】:2018-03-31 22:40:35
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你能用一个最小的例子重现它吗?

标签: angular angular-cli angular2-template


【解决方案1】:

这条线似乎是 AOT 的罪魁祸首。

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

我把它改成了

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

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

【讨论】:

  • 这很奇怪,但对我有用。谢谢@Abide。竖起大拇指:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-11-26
  • 1970-01-01
  • 2013-07-05
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多