Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.05.2019, 13:09
Интересующийся
Отправить личное сообщение для kotelok Посмотреть профиль Найти все сообщения от kotelok
 
Регистрация: 27.08.2018
Сообщений: 22

Не работает DI в проде
Есть класс внутри NS:
export namespace CatalogApi {

    @Injectable()
    export class CatalogService {
        constructor(private httpClient: HttpClient) {

Запуск через 'ng serve', всё ок.

Делаю сборку через 'ng build' (пробовал собирать с ключами '--prod' и '--aot').

Заливаю на сервер.
Захожу на страницу, где используется указанный выше класс и в его конструкторе получаю 'httpClient' равным 'undefined'. При этом тот же 'httpClient' нормально инжектится в другие конструкторы.

А если реализовать этот класс вне NS, то работает при любых типах сборки/публикации.

Все зависимости обновил/пофиксил.
Изначально Angular-7, обновление до Angular-8 не помогает.

Как это можно вылечить?

P.S.: NS очень удобны для остального кода, т.к. в них прячутся несущественные для внешнего кода детали реализации и через них же классы группируются в удобные логические блоки.

Последний раз редактировалось kotelok, 29.05.2019 в 13:12.
Ответить с цитированием
  #2 (permalink)  
Старый 29.05.2019, 13:18
Интересующийся
Отправить личное сообщение для kotelok Посмотреть профиль Найти все сообщения от kotelok
 
Регистрация: 27.08.2018
Сообщений: 22

В общем, работает только при такой сборке:
Код:
ng build --prod --aot=false --build-optimizer=false
Но нужно собрать со включенным 'aot'.
Ответить с цитированием
  #3 (permalink)  
Старый 29.05.2019, 13:29
Интересующийся
Отправить личное сообщение для kotelok Посмотреть профиль Найти все сообщения от kotelok
 
Регистрация: 27.08.2018
Сообщений: 22

Нашёл. Есть зарепорченный баг AOT-компиляции:
https://github.com/angular/angular/issues/15613
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JS: работает на сервере, не работает из папки -majestic- Общие вопросы Javascript 2 02.08.2012 14:41
Не работает push! Динамическая вставка TSEH25 ExtJS 5 03.07.2012 13:00
jQyery функция странно работает! Midel Общие вопросы Javascript 4 08.04.2012 13:40
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Safari + ajax некорректно работает, а в других работает demi AJAX и COMET 35 15.07.2009 14:11