我在这里遇到角度2的麻烦。我使用返回承诺的服务,但是当我尝试检索响应时出现错误。
我读过这个问题, 这是我的代码。
这是HotelService.ts
import { Injectable } from '@angular/core'; import { Http } from '@angular/http'; //rxjs promises cause angular http return observable natively. import 'rxjs/add/operator/toPromise'; @Injectable() export class HotelService { private BASEURL : any = 'http://localhost:8080/hotel/'; constructor(private http: Http) {} load(): Promise{ return this.http.get(this.BASEURL + 'api/client/hotel/load') .toPromise() .then(response => { response.json(); //console.log(response.json()); }) .catch(err => err); } }
此Hotel.ts(组件)
import { Component, OnInit } from '@angular/core'; import { NavController } from 'ionic-angular'; import { HotelService } from '../../providers/hotel/hotelservice'; import { AboutPage } from '../../pages/about/about'; import { HotelDetailPage } from '../../pages/hoteldetail/hotel'; @Component({ selector: 'page-home', templateUrl: 'home.html', providers: [HotelService] }) export class HomePage implements OnInit { public searchBoxActive = false; public hotels: any; constructor( private navCtrl: NavController, private hotelServ: HotelService ) { } load() { this.hotelServ.load() .then(res => { this.hotels = res; console.log(res); //why the rest is undefined? console.log('ini component'); }, err => err); } toggleSearchBox() { if (this.searchBoxActive == false) { this.searchBoxActive = true; } else { this.searchBoxActive = false; } } showAbout() { this.navCtrl.setRoot(AboutPage); } pushDetail(evt, id) { this.navCtrl.push(HotelDetailPage) } ngOnInit(): void { this.load(); } }
我不知道。