Я использую диалоговое окно в моем приложении ionic 3.Я получаю сообщение об ошибке в файле моего провайдера ts.
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
@Injectable()
export class ChatProvider {
url = 'https://api.dialogflow.com/v1/query';
accessToken = 'xxxxxxxxxxxxxxxxxx';
constructor(public http: HttpClient) {
console.log('Hello ChatProvider Provider');
}
sendMessage(message: string) {
let data = {
lang: "en",
query: message
}
let headers = new HttpHeaders();
headers.append("Authorization","Bearer" + this.accessToken);
return this.http.post(this.url, data,{headers: headers})
.map(res => {
return res
})
}
}
, и получаю ошибку:
ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: StaticInjectorError(AppModule) [ChatProvider -> HttpClient]: StaticInjectorError (Платформа: ядро) [ChatProvider -> HttpClient]: NullInjectorError: Нет поставщика для HttpClient!Ошибка: StaticInjectorError (AppModule) [ChatProvider -> HttpClient]: StaticInjectorError (Платформа: ядро) [ChatProvider -> HttpClient]: NullInjectorError: Нет поставщика для HttpClient!в _NullInjector.get (core.js: 1003) в resolToken (core.js: 1301) в tryResolveToken (core.js: 1243) в StaticInjector.get (core.js: 1111) в resolToken (core.js: 1301) вtryResolveToken (core.js: 1243) в StaticInjector.get (core.js: 1111) в resolNgModuleDep (core.js: 10896) в _createClass (core.js: 10933) в _createProviderInstance $ 1 (core.js: 10907) в _NullInjector.получить (core.js: 1003) в resolToken (core.js: 1301) в tryResolveToken (core.js: 1243) в StaticInjector.get (core.js: 1111) в resolToken (core.js: 1301) в tryResolveToken (core).js: 1243) в StaticInjector.get (core.js: 1111) в resolNgModuleDep (core.js: 10896) в _createClass (core.js: 10933) в _createProviderInstance $ 1 (core.js: 10907) в c (polyfills.js): 3) в Object.reject (polyfills.js: 3) в NavControllerBase._fireError (nav-controller-base.js: 223) в NavControllerBase._failed (nav-controller-base.js: 216) в nav-controller-base.js: 263 при t.invoke (polyfills.js: 3) в Object.onInvoke (core.js: 4760) при t.invoke (polyfills.js: 3) в r.run (polyfills.js: 3) в polyfills.js: 3
Это мой файл home.ts с кодом
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { Message } from '../module/message.module';
import { ChatProvider } from '../../providers/chat/chat';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
messages: Message[] = [];
constructor(public navCtrl: NavController,private chatprovider: ChatProvider) {
}
ngOnInit(){
let message = new Message("hi")
this.messages.push(message);
}
sendMesage(message_content) {
this.chatprovider.sendMessage(message_content.value).subscribe(res =>{
console.log(res);
// let message = new Message(res.result.speech);
// this.messages.push(message);
// message_content.value = '';
}, err => {
console.log(err)
}
)
}
}
этоФайл 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 { HomePage } from '../pages/home/home';
import { FormsModule } from '@angular/forms';
import { ChatProvider } from '../providers/chat/chat';
import { Message } from '../pages/module/message.module';
@NgModule({
declarations: [
MyApp,
HomePage
],
imports: [
BrowserModule,
FormsModule,
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage
],
providers: [
StatusBar,
SplashScreen,
{provide: ErrorHandler, useClass: IonicErrorHandler},
ChatProvider
]
})
export class AppModule {}