Angular: Ошибка: Uncaught (в обещании) в webpackAsyncContext (eval в ./src/$$_lazy_route_resource

Невозможно синхронно загружать данные из базы данных Firebase.

Хотя разработчикам, новым для Firebase, для синхронного метода, обычно не подходит модель синхронизации данных Firebase. Также см. Мой ответ здесь: Установка значения свойства Singleton в Firebase Listener

29
задан firasKoubaa 26 February 2018 в 15:00
поделиться

10 ответов

Я решил эту проблему, обновив mt angular-cli локально в devDependenices (package.json) с 1.2.0 до 1.6.7

3
ответ дан firasKoubaa 26 February 2018 в 15:00
поделиться

Столкнулся с той же проблемой. Перезапуск углового сервера ng-serve работал для меня.

3
ответ дан User0706 26 February 2018 в 15:00
поделиться

используйте вместо этого ng serve --aot. Обычно Angular CLI добавляет модуль Angular с ленивой загрузкой в ​​AppModule при его создании.

0
ответ дан user10793582 26 February 2018 в 15:00
поделиться

ng service --aot, хотя он компилирует ваш код, это не решение, а просто сокрытие. Если вы определили, что это не версия CLI, попробуйте следующее решение.

Что вам нужно сделать, это убедиться, что в app.module.ts вы не загружаете свой лениво загруженный модуль.

Например:

app.module.ts
 imports: [
   ...
   AppRouterModule,
   FormsModule,
   YourFeatureModule, <--- remove this
   ...
 ]

Убедитесь, что YourFeatureMOdule загружается через routes, то есть:

app-routing.module.ts
 loadChildren: '../app/feature.module#YourFeatureModule'

Надеюсь, это поможет

6
ответ дан Nosniw 26 February 2018 в 15:00
поделиться

У меня такая же проблема. Это может быть ошибкой в ​​angular-cli. Я все еще не уверен, есть ли ошибка в cli или в нашем коде! Как упомянуто Герритом , все еще возможно скомпилировать с aot: ng serve --aot

Я также решил проблему, понизив мой angular-cli с 1.7.2 до 1.6.8 , которая является последней CLI-версией, которая, кажется, работает в нашем случае.

11
ответ дан Alex T 26 February 2018 в 15:00
поделиться

Решение 1

Порядок импорта имеет значение import lazy loaded module вверху и router module на последнем месте. Поскольку мы выполняем отложенную загрузку, этот загруженный модуль должен существовать до того, как мы осуществим маршрутизацию.

imports: [
    BrowserModule,       
    HeroModule, // Lazy-loaded module

    AppRoutingModule
  ],

Решение 2

Обычно Angular CLI импортирует module в app-module при его создании. поэтому убедитесь, что модуль lazy-loaded не был импортирован в app-module

12
ответ дан Ram Chandra Neupane 26 February 2018 в 15:00
поделиться

У меня была точно такая же проблема, но простой перезапуск сервера узлов (ng s) помог мне.

Как правило: если angular начинает вести себя странно, сначала попробуйте перезапустить сервер узлов

.
2
ответ дан unkreativ 26 February 2018 в 15:00
поделиться

Как упомянуто в https://github.com/angular/angular-cli/issues/9488#issuecomment-368871510 , похоже, он работает с ng serve --aot

10
ответ дан Gerrit 26 February 2018 в 15:00
поделиться

Я изменил порядок импорта в моем app.module.ts, как упомянуто здесь

Так что вам нужно иметь его, например, так:

imports: [
  BrowserModule,
  FormsModule,
  HeroesModule,
  AppRoutingModule
]

Наиболее важным является иметь первый BrowserModule и в конце AppRoutingModule.

15
ответ дан Paul Roub 26 February 2018 в 15:00
поделиться

Не импортируйте ваш лениво загруженный модуль в ваш основной app.module.ts. Это вызовет циклическую зависимость и выдаст ошибку, которую вы получаете.

38
ответ дан jetset 26 February 2018 в 15:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: