离子HttpClient注入错误

时间:2018-07-24 01:31:53

标签: ionic-framework

我是Ionic的新手,当我将HttpClient注入我的服务类时遇到以下错误:

错误:未捕获(承诺):错误:StaticInjectorError(AppModule)[CategoriesServiceProvider-> HttpClient]:   StaticInjectorError(平台:核心)[CategoriesServiceProvider-> HttpClient]:     NullInjectorError:HttpClient没有提供程序! 错误:StaticInjectorError(AppModule)[CategoriesServiceProvider-> HttpClient]:   StaticInjectorError(平台:核心)[CategoriesServiceProvider-> HttpClient]:     NullInjectorError:HttpClient没有提供程序!

该错误是由以下Service类触发的:

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

@Injectable()
export class CategoriesServiceProvider {
  apiURL = 'https://randomuser.me/api/?results=10';

  constructor(private http: HttpClient) {
    console.log('Hello CategoriesServiceProvider Provider');
  }

}

如果我从构造函数中删除HttpClient,错误就会消失。

而且,以下是我的 app.module.ts 代码:

import { BrowserModule } from '@angular/platform-browser';
import { ErrorHandler, NgModule } from '@angular/core';
import { IonicApp, IonicErrorHandler, IonicModule } from 'ionic-angular';
import { SplashScreen } from '@ionic-native/splash-screen';
import { StatusBar } from '@ionic-native/status-bar';

import { MyApp } from './app.component';
import { TabsPage } from '../pages/tabs/tabs';
import { CategoriesPage } from '../pages/categories/categories';
import { SubscriptionsPage } from '../pages/subscriptions/subscriptions';
import { CategoriesServiceProvider } from '../providers/categories-service/categories-service';

@NgModule({
  declarations: [
    MyApp,
    TabsPage,
    CategoriesPage,
    SubscriptionsPage
  ],
  imports: [
    BrowserModule,
    IonicModule.forRoot(MyApp)
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    TabsPage,
    CategoriesPage,
    SubscriptionsPage
  ],
  providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    CategoriesServiceProvider
  ]
})
export class AppModule {}

任何见解都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

在您的应用模块中添加import { HttpClientModule } from '@angular/common/http';

在导入中,像这样添加HttpClientModule

imports: [
  BrowserModule,
  HttpClientModule,
  IonicModule.forRoot(MyApp)
]