【发布时间】:2018-06-10 01:50:54
【问题描述】:
我有一个导入 Http 的服务,当我在我的应用程序中使用它时,它会引发错误。 “没有 Http 提供程序!g injectionError 时出错”。我正在延迟加载应用程序。此外,提供程序是通过 cli "ionic g provider ..."
complaint-service.ts
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';
@Injectable()
export class ComplaintService {
private complaints: {subject: string, description: string}[] = [];
constructor(public http: Http) {
this.http = http;
this.complaints = null;
console.log('Hello ComplaintService Provider');
}
addComplaints(complaint: {subject: string, description: string}) {
this.complaints.push(complaint);
}
getComplaints() {
return this.complaints.slice();
}
}
complaint-form.ts
import { Component } from '@angular/core';
import {Validators, FormBuilder, FormGroup } from '@angular/forms';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import {ComplaintService} from '../../providers/complaint-service';
@IonicPage()
@Component({
selector: 'page-complaint-form',
templateUrl: 'complaint-form.html',
providers: [ComplaintService]
})
export class ComplaintForm {
}
有什么建议吗?
【问题讨论】:
-
你必须在你的模块中注册
Http到providers -
@devqon - 我们在延迟加载时也需要它吗?
-
请注意 Angular 的
Http与 Ionic 原生插件的HTTP之间的区别。如果为后者获得no provider error,请将HTTP- 可以从ionic-native导入 - 包含到您的app.module.ts中。