2017-04-12 36 views
1

我正在學習一門葡萄牙語教程,教您如何構建您的第一個Ionic應用程序。錯誤:沒有與Ionic構造函數參數中的http提供程序

使用最新版本安裝npm,node.js,angular,Ionic和Cordova之後,我開始編寫代碼。代碼本身是很簡單的:

import { Component } from '@angular/core'; 
import { NavController } from 'ionic-angular'; 
import { Http } from '@angular/http'; 
import 'rxjs/add/operator/map'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 

export class HomePage { 

    public feeds: Array<string>; 
    private url: string = "https://www.reddit.com/new.json"; 

    constructor(public navCtrl: NavController, public http: Http) { 

    this.http.get(this.url).map(res => res.json()).subscribe(data => { 
     this.feeds = data.data.children; 
     }); 
    } 
}` 

我基本上消耗reddit的的API JSON,可以使用在「URL」的鏈接變量,它應該返回一個巨大的JSON進行訪問,轉換並存儲在「飼料」。問題是,每當我爲這個離子應用程序,我得到這個錯誤:

image of the error

我已經試圖弄清楚這個問題,並發現,如果我抹掉一切的構造函數中我仍然得到錯誤,但如果我擦除「公共http:http」這是一個參數爲構造函數的錯誤消失了。

尋找解決方案我看到有人建議將提供者添加到@Component,但教程沒有提到任何有關這方面的內容。

我已經嘗試重新安裝一切,但我仍然得到錯誤。

你必須怎樣做才能重建錯誤:

  • 在安裝最新版本的故宮;
  • 在最新的穩定版本上安裝node.js;
  • 在最新版本中使用npm安裝角度;
  • 使用npm安裝ion(2.2.2)和cordova(6.5.0)最新版本;
  • 創建應用程序使用:ionic start MyReader blank --v2 --appname "Best Reader Ever" --id "com.tableless.myreader"
  • 將MyReader/src/pages/home/home.ts內容更改爲上面的腳本。

此外,如果你想看看教程本身,鏈接是:https://tableless.com.br/criando-uma-aplicacao-movel-com-ionic-2-e-angular-2-em-dez-passos/

+1

將'HttpModule'導入你的主模塊將修復這個 – Aravind

+0

我真的很抱歉問,但我剛剛開始學習Angular和Ionic,你能告訴我如何導入它嗎?謝謝! –

+0

你在團隊查看器中可用嗎? – Aravind

回答

1

使用下面的代碼

import {HTTP_PROVIDERS} from '@angular/http'; 

provider : [ HTTP_PROVIDERS, .... 


] 

因爲angular4以上回答被棄用。但是正如我在評論說,

import { HttpModule } from '@angular/http'; 

imports: [ HttpModule ] 
2

SOLUTION:HTTP_PROVIDERS從angular2取出,並通過所取代:HTTP模塊。

我所要做的就是補充:

import { HttpModule } from '@angular/http'; 

爲src /應用/ app.module.ts然後:

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

而完成的。非常感謝大家。

+0

如果我注入HttpModule,我無法訪問http方法,如get和post right? –

相關問題