【问题标题】:How to resolve Uncaught (in promise): Error: StaticInjectorError in Angular 7?如何解决未捕获(承诺):错误:Angular 7 中的 StaticInjectorError?
【发布时间】:2019-10-01 13:32:11
【问题描述】:

我正在尝试将服务注入到我的 Angular 应用程序的组件中。 我正在使用 Angular 7 版本。

这是我的dashboard.component:

import { ArtistService } from './artist.service';

export class AdminDashboardComponent implements OnInit {
    constructor(private _artistService: ArtistService) { }
}

这是我的一些 artist.service.ts 文件:

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

@Injectable()
    export class ArtistService {
}

当我导航到仪表板组件时,此错误会记录到控制台:

错误:未捕获(承诺):

错误:StaticInjectorError(AppModule)[AdminDashboardComponent -> ArtistService]:

StaticInjectorError(平台:核心)[AdminDashboardComponent -> ArtistService]: NullInjectorError:ArtistService 没有提供者!

我已尝试通过使用此装饰器更新我的服务来解决此问题:

@Injectable({
    providedIn: 'root'
})

但我仍然收到同样的错误。有人可以指出我需要改变什么吗?提前非常感谢

【问题讨论】:

  • 你有没有在你的AppModule 文件中添加ArtistService
  • providedIn 应该可以工作,请创建一个 stackblitz 来帮助您解决问题

标签: angular service provider


【解决方案1】:

您需要在模块(例如 AppModule)中提供服务,如下所示

@NgModule({
   // ... other codes 
   providers: [
      ArtistService
      // ... other codes
   ]
})

或者正如您提到的,在您的服务中使用providedIn,如下所示

@Injectable({
    providedIn: 'root'
})

【讨论】:

    猜你喜欢
    • 2019-07-09
    • 1970-01-01
    • 2018-05-12
    • 2023-01-30
    • 2018-09-21
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多