构建后,角度5 ngSwitch无法正常工作

时间:2018-06-18 19:32:52

标签: angular angular-cli

我正在使用Angular 5和Angular CLI 1.6.8。在我的一个模板中,我有以下标记与ng serve完全正常,但在ng build失败:

     <div [ngSwitch]="amazonReportResultType">
        <div *ngSwitchCase="'AmazonReportEarningsByProductResponse'">
           <app-amazon-earnings-by-product-view [salesReport]="amazonReportResult"></app-amazon-earnings-by-product-view>
        </div>
        <div *ngSwitchCase="'AmazonReportEarningsByPlatformResponse'">
           <app-amazon-earnings-by-platform-view [salesReport]="amazonReportResult"></app-amazon-earnings-by-platform-view>
        </div>
     </div>

我的应用程序的其余部分在构建后似乎工作正常。我的构建命令是这样的:

ng build --prod --env=prod --build-optimizer --sourcemaps

当我检查DOM时,在我应该看到开关输出的地方,我看到一个空的注释。为什么会发生这种情况并且有解决方法?

感谢。

1 个答案:

答案 0 :(得分:0)

好的,我发现了问题,它与ngSwitch无关。问题是,我通过查看amazonReportResultType获得了amazonReportResult.constructor.name的价值,并且该技术与angular cli使用的uglifyJS插件不能很好地配合使用。我通过添加一种方法来解决此问题,该方法使用if (amazonReportResult instanceof ...)语句检查报告的类型,并在每个if子句中返回一个字符串。我知道可以通过运行ng eject并配置uglify插件来解决此问题,但是我不想走这条路。