【问题标题】:Error No provider for NgZone错误 No provider for NgZone
【发布时间】:2018-05-31 06:13:30
【问题描述】:

我有一个使用 Angular 谷歌地图来显示位置的应用程序。一开始我可以显示地图,但有一段时间(可能我修改了一些东西)我收到以下错误:

ERROR Error: Uncaught (in promise): Error: StaticInjectorError[NgZone]: 
StaticInjectorError[NgZone]: 
NullInjectorError: No provider for NgZone!
at _NullInjector.get (core.js:923)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveNgModuleDep (core.js:10585)
at NgModuleRef_.get (core.js:11806)
at resolveDep (core.js:12302)
at _NullInjector.get (core.js:923)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveToken (core.js:1211)
at tryResolveToken (core.js:1153)
at StaticInjector.get (core.js:1024)
at resolveNgModuleDep (core.js:10585)
at NgModuleRef_.get (core.js:11806)
at resolveDep (core.js:12302)
at resolvePromise (zone.js:824)
at resolvePromise (zone.js:795)
at eval (zone.js:873)
at ZoneDelegate.invokeTask (zone.js:425)
at Object.onInvokeTask (core.js:4620)
at ZoneDelegate.invokeTask (zone.js:424)
at Zone.runTask (zone.js:192)
at drainMicroTaskQueue (zone.js:602)
at <anonymous>

我的代码是: app.module.ts:

import { AgmCoreModule } from '@agm/core';

imports AgmCoreModule.forRoot({apiKey:'...'})

我的组件.html

<agm-map [latitude]="lat" [longitude]="lng" [zoom]="zoom">
    <agm-marker [latitude]="lat" [longitude]="lng">
        <agm-info-window>
            <div>
                my text
            </div>
        </agm-info-window>
    </agm-marker>

非常感谢您的帮助!

【问题讨论】:

  • 您可以跟随堆栈并检查错误发生的位置。目前你是唯一能做到这一点的人。考虑提供一种方法来复制问题 - plunk、stackblitz 等。
  • 嗨,我对此很感兴趣。您找到解决问题的方法了吗?
  • zone 包含在polyfills.ts 中的大多数应用程序中。 polyfills.ts 包含在 angular.json 中。您是否修改了这些文件中的任何一个?
  • 有人解决了吗?我遇到了完全相同的错误。

标签: angular maps angular-google-maps angularjs-injector ngzone


【解决方案1】:

您可以手动提供NgZone

import { NgZone } from '@angular/core';

@NgModule({
    providers: [
        // ...
        { provide: NgZone, useFactory: () => new NgZone({}) }
    ]
})

【讨论】:

    【解决方案2】:

    您需要将 peerDependencies 添加到您正在使用的所有库中。

    还可以通过从导入中删除每个模块来检查是哪个模块导致了问题。 这个 link 应该会有所帮助。

    【讨论】:

      猜你喜欢
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 2023-02-26
      • 2022-12-27
      相关资源
      最近更新 更多