Permintaan HTTP Ionic 2 tidak berfungsi - Angular 2

Hai, saya mencoba melakukan permintaan Http GET sederhana, tetapi tidak dapat berfungsi di ionic v2 Beta...

ini app.js saya:

import {App, Platform} from 'ionic-angular';
import {TabsPage} from './pages/tabs/tabs';
import {HTTP_BINDINGS} from 'angular2/http';


@App({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  providers: [HTTP_BINDINGS],
  config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
export class MyApp {
  static get parameters() {
    return [[Platform]];
  }

  constructor(platform) {
    this.rootPage = TabsPage;

    platform.ready().then(() => {

    });
  }
}

dan ini halaman1.js saya:

import {Page} from 'ionic-angular';
import {Http} from 'angular2/http';


@Page({
  templateUrl: 'build/pages/page1/page1.html'
})

export class Page1 {
    constructor(http:Http) {

        this.mget = http.get("https://httpbin.org/ip")
        .subscribe(data => {
            var alert = Alert.create({
                title: "Your IP Address",
                subTitle: data.json().origin,
                buttons: ["close"]
            });
            this.nav.present(alert);
        }, error => {
            console.log(JSON.stringify(error.json()));
        });
    }
}

Saat menambahkan http:Http ke konstruktor -> konstruktor(http:Http) seluruh aplikasi menjadi kosong di browser... Dan saya mendapatkan kesalahan di Konsol:

Kesalahan: Tidak dapat menemukan modul "../page1/page1"

Saya juga sudah mencoba ini di Page1.js:

export class Page1 {
    constructor() {

    }

    makeGetRequest() {
        this.http.get("https://httpbin.org/ip")
        .subscribe(data => {
            var alert = Alert.create({
                title: "Your IP Address",
                subTitle: data.json().origin,
                buttons: ["close"]
            });
            this.nav.present(alert);
        }, error => {
            console.log(JSON.stringify(error.json()));
            console.log('yolo')
            alert('hello');
        });
    }
}

lalu panggil makeGetRequest() pada (klik) di page1.html tetapi ia mengembalikan pengecualian berikut:

PENGECUALIAN: Kesalahan selama evaluasi "klik"

PENGECUALIAN ASLI: TypeError: this.http tidak terdefinisi

tolong bantu! :)

-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-

INILAH SOLUSINYA:

halaman1.js:

import {Page} from 'ionic-angular';
import {Http} from 'angular2/http';

@Page({
  templateUrl: 'build/pages/page1/page1.html'
})

export class Page1 {
     static get parameters(){
       return [Http];
       }
    constructor(http) {
        this.http = http;

        this.mget = this.http.get("https://httpbin.org/ip")
        .subscribe(data => {
            console.log(data);
        }, error => {
            console.log('faild');
        });
    }
}

aplikasi.js:

import {App, Platform} from 'ionic-angular';
import {TabsPage} from './pages/tabs/tabs';
import { HTTP_PROVIDERS } from 'angular2/http';


@App({
  template: '<ion-nav [root]="rootPage"></ion-nav>',
  providers: [HTTP_PROVIDERS],
  config: {} // http://ionicframework.com/docs/v2/api/config/Config/
})
export class MyApp {
  static get parameters() {
    return [[Platform]];
  }

  constructor(platform) {
    this.rootPage = TabsPage;

    platform.ready().then(() => {

    });
  }
}

person Christer    schedule 02.03.2016    source sumber


Jawaban (2)


Silakan coba ini

export class Page1 {
     static get parameters(){
       return [Http];
       }
    constructor(http) {
        this.http = http;
        this.mget = this.http.get("https://httpbin.org/ip")
        .subscribe(data => {
            var alert = Alert.create({
                title: "Your IP Address",
                subTitle: data.json().origin,
                buttons: ["close"]
            });
            this.nav.present(alert);
        }, error => {
            console.log(JSON.stringify(error.json()));
        });
    }
}

Saya akan merekomendasikan Anda untuk menulis permintaan get di dalam layanan terpisah dan memasukkannya ke halaman Anda.

Lihat juga ini - http://tphangout.com/?p=113

Instruksi terperinci dan sederhana diberikan di sana untuk membuat permintaan GET sederhana dari aplikasi Ionic 2.

person Raja Yogan    schedule 02.03.2016

Saya yakin Anda perlu import { HTTP_PROVIDERS } from 'angular2/http'; di app.js Anda alih-alih HTTP_BINDINGS dan ubah providers: [HTTP_BINDINGS] menjadi providers: [HTTP_PROVIDERS]

Lihat dokumen Angular2

person jboothe    schedule 02.03.2016
comment
masih mendapatkan kesalahan: PENGECUALIAN ASLI: TypeError: this.http tidak terdefinisi - person Christer; 03.03.2016
comment
Coba jadikan http pribadi: constructor(private http:Http) {... - person jboothe; 03.03.2016
comment
Apakah Anda memasukkan <script src="../node_modules/angular2/bundles/http.dev.js"></script> pada halaman indeks Anda? - person jboothe; 03.03.2016