【问题标题】:No provider for Http! Error: No provider for Http! at injectionError没有 Http 提供者!错误:没有 Http 的提供者!在注入错误
【发布时间】:2018-04-24 11:47:00
【问题描述】:

未捕获(承诺):错误:没有 Http 提供程序!错误:没有 Http 的提供者!在注入错误

组件文件:

import { Component,Injectable } from '@angular/core';
import { HttpModule, Http } from '@angular/http';
import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import { Camera } from 'ionic-native'
import firebase from 'firebase'

@IonicPage()
@Component({
  selector: 'page-user-main',
  templateUrl: 'user-main.html',
})
export class UserMainPage {
    picdata:any
    picurl:any
    mypicref:any
  public people: any;

  constructor(public navCtrl: NavController, public navParams: NavParams, 
    public alertCtrl: AlertController, public http: Http
     ) {
   // this.films = this.http.get('http://0.0.0.0:3000/');
  }   
}

module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpModule, Http } from '@angular/http';
import { IonicPageModule } from 'ionic-angular';

@NgModule({
  declarations: [
    UserMainPage,
  ],
  imports: [
    BrowserModule,
    IonicPageModule.forChild(UserMainPage),
    HttpModule
  ]})
export class UserMainPageModule {}

运行时错误 未捕获(承诺):错误:没有 Http 提供者!错误:没有 Http 的提供者! at injectionError (http://localhost:8100/build/vendor.js:1788:90) at noProviderError

更新:在 App.module.ts 中添加提供程序后修复错误

【问题讨论】:

  • 尝试 import { HttpModule } from '@angular/http'; 从导入类中删除 Http

标签: angular typescript ionic-framework ionic2 ionic3


【解决方案1】:

完全不建议这样做。您绝不能将HTTP 注入页面的constructor()。这是一种反模式。您需要为此创建一个provider。之后,您可以将该提供程序注入您的page

CLI

ionic generate provider MyProvider

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2018-05-09
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-18
    相关资源
    最近更新 更多