静态注入器错误

Posted

技术标签:

【中文标题】静态注入器错误【英文标题】:StaticInjectorError 【发布时间】:2019-06-08 12:34:04 【问题描述】:

这是我的 HttpClient 代码:

import  Component, OnInit  from '@angular/core';
import  HttpClient  from '@angular/common/http';
import  CreeperUser  from '../Models/CreeperUser';
import  Observable  from 'rxjs';

@Component(
    templateUrl: 'friends.component.html'
)
export class FriendsComponent 
    users: number;

    constructor(private http: HttpClient) 
        this.DisplayUser();
     

    public CallApi_HttpGet(): Observable<CreeperUser[]> 
        return this.http.get<CreeperUser[]> ('https://localhost:44399/api/user');
    

    public DisplayUser()
        this.CallApi_HttpGet().subscribe(response => 
            this.users = response[0].userId;
        );
    

当我运行代码时,Chrome 的控制台告诉我:

Error: Uncaught (in promise): Error: StaticInjectorError(AppModule) 

【问题讨论】:

请注意,组件不应该直接使用HttpClient,编写服务来管理它。但是你在任何地方都有HttpClientModule 吗? 嘿 Play_D,您的问题可以改进:***.com/help/how-to-ask. No provider for HttpClient的可能重复 由于各种原因,请避免将错误消息(或代码)的图像放在问题中。实际上,我可以看到截图中最相关和最重要的消息是“No provider for HttpClient” 【参考方案1】:

你没有在你的模块中提供提供者;

 import  HttpClientModule, HttpClient  from '@angular/common/http';
.
.
.
@NgModule(
imports: [
    BrowserModule,
    HttpClientModule,
    BrowserAnimationsModule,
    FormsModule,
    AppRoutingModule
],
providers: [ HttpClientModule, ... ]

希望这能解决您的问题

【讨论】:

以上是关于静态注入器错误的主要内容,如果未能解决你的问题,请参考以下文章

未捕获的错误注入器 modulerr 模块错误

Angular 混合错误:试图在设置之前获取 AngularJS 注入器

错误错误:StaticInjectorError Angular 6

Spring-如何给静态变量注入值

构建过程中发生错误。在项目上运行构建器“CDI(上下文和依赖注入)构建器”时出错

使用静态成员时的链接器错误