在Angular 5上更新后找不到NgModule

时间:2018-02-12 21:22:58

标签: angular

我尝试将我的应用更新为Angular 5.稍后出现一些错误,我现在有一个我无法解决的错误。

  

未捕获错误:意外值' HttpClient'由模块导入的AppModuleShared'。请添加@NgModule注释。

我检查了我的AppModuleShared,但没有发现错误。

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { HttpClient, HttpClientModule } from '@angular/common/http'; 
import { RouterModule } from '@angular/router';

import { AppComponent } from './components/app/app.component';
import { NavMenuComponent } from './components/navmenu/navmenu.component';
import { HomeComponent } from './components/home/home.component';

import { StoreModule } from './store/store.module';
import { LandingPageModule } from './components/landingpage/landingpage.module';

//import { RegisterComponent } from './components/auth/register.component';
import { LoginComponent } from './components/auth/login/login.component';
import { HeaderLoginComponent } from './components/auth/headerlogin/headerlogin.component';

import { MessageListComponent } from './components/messagelist/messagelist.component';

import { AuthModule } from './components/auth/auth.module';

@NgModule({
    declarations: [
        AppComponent,
        NavMenuComponent,
        HomeComponent,
        HeaderLoginComponent,
        MessageListComponent


    ],
    providers: [

    ],
    imports: [
        CommonModule,
        HttpClient,
        FormsModule,
        StoreModule,
        LandingPageModule,
        AuthModule,
        HttpClient,
        HttpClientModule,
        RouterModule.forRoot([

            { path: 'home', component: HomeComponent },
            { path: '**', redirectTo: '' }
        ])
    ]
})
export class AppModuleShared {
    constructor(
    ) {
    }

}

谁知道该怎么做?

2 个答案:

答案 0 :(得分:1)

您不应该导入HttpClient。这是直接导入到您的组件内部的。导入部分仅适用于模块。 HttpClientModule应该是NgModule导入中唯一导入的。 (为什么你有两次进口?)你有:

import: [
  HttpClient,

  ...
  HttpClient,
  HttpModule

]

但它应该是:

import: [
  ...
  HttpClientModule
]

和组件:

import { HttpClient } from '@angular/common/http';

export class MyComponent {
  constructor(private http: HttpClient) {}
}

答案 1 :(得分:1)

1)从导入

中删除HtttpClient

2)将它添加到构造函数中:`constructor(private httpClient:HttpClient){}

它是HttpClientModule np.load

的依赖关系