UIRouter / угловой гибрид AoT build bootstrapModuleFactory Обещатель инжектора не может получить UIRouter - PullRequest
0 голосов
/ 03 января 2019

У меня есть пример приложения uirouter / angular-hybrid, успешно созданного с помощью подключаемого модуля @ ngtools / webpack AngularCompiler.Я обновил загрузочную функцию main.aot.ts для использования bootstrapModuleFactory и могу получить инжектор из platformRef, доступный в обработчике успеха обещания.Но injector.get (UIRouter) завершается с ошибкой «Не удается прочитать свойство 'config' со значением NULL.",Я попытался переместить вызов в injector.get (UIRouter) внутри функции запуска NgZone, но безуспешно.

Я также попытался переместить вызов upgrade.bootstrap в функцию обещания успеха, описанную выше, чтобы убедиться, что он загрузился первым, без исправленияпроблема.

Простой компонент angularjs хорошо отрисовывается, поэтому процесс загрузки кажется успешным, за исключением невозможности вызова функций listen () и sync () для UIRouter.urlService.

Я также подтвердил, что конфигурация разработки и производственная конфигурация не для этого же примера приложения не имеют этой проблемы и, похоже, работают нормально.

Использование версий:

uirouter / angular-hybrid v6.0.2

угловые пакеты в v7.1.4, но также не удалось с 6.0.0 (это угловая версия в package.json в документации для uirouter / angular-hybrid v6.0.2)

Спасибо за любые идеи.

1 Ответ

0 голосов
/ 03 января 2019

Проблема заключалась в том, что объект конфигурации, который я передавал в UIRouterUpgradeModule.forRoot, импортировался из файла, который использовал экспорт объекта по умолчанию, и объект имел ссылку на функцию конфигурации, которая не экспортировалась.Эта комбинация скрыла проблему во время сборки и привела к тому, что во время выполнения возникла проблема с недоступностью объекта UIRouter для инжектора.

Замена экспорта по умолчанию на именованный экспорт привела к тому, что компилятор AOT начал жаловаться на-экспортированная ссылка на функцию.Кроме того, экспорт функции позволил успешную сборку, счастливый инжектор и успешную загрузку во время выполнения.

...