Angular 5 ngSwitch не работает после сборки ng

Я использую 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, в том месте, где я должен видеть выходные данные переключателя, я вижу пустой комментарий. Почему это происходит и есть ли обходной путь?

Спасибо.

Что произойдет, если вы добавите <div *ngSwitchDefault>Oops, it was none of what I expected</div> во внешний div? Что будет напечатано, если вы добавите {{ amazonReportResultType }} перед div? Вы пробовали обновиться до Angular 6 и последней версии интерфейса командной строки?

JB Nizet 18.06.2018 22:26

Вы получаете amazonReportResultType в асинхронном режиме?

Vega 18.06.2018 22:52
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
2
155
1

Ответы 1

Хорошо, я нашел проблему, и она не была связана с ngSwitch. Проблема заключалась в том, что я получал значение amazonReportResultType, глядя на amazonReportResult.constructor.name, и этот метод не работает с плагином uglifyJS, который использует angular cli. Я решил эту проблему, добавив метод, который проверяет тип отчета с помощью операторов if (amazonReportResult instanceof ...) и возвращает строку в каждом предложении if. Я понимаю, что проблему можно решить, запустив ng eject и настроив плагин uglify, но я не хотел идти по этому пути.

Другие вопросы по теме