2016-11-08 197 views
0

我正在使用Angular 2 beta.18,並嘗試使用Google地圖地理編碼。 我和所有教程所描述的一樣,但我收到了一個奇怪的迴應。Angular 2 HTTP無效

我的組分:

import { Injectable } from '@angular/core'; 
import { Http, Response} from '@angular/http'; 
import {Observable} from 'rxjs/Observable'; 

@Injectable() 
export class GoogleMapService { 

    constructor(private http: Http) { } 

convertAddressToCooredinate(address: string){ 
    if(address != null){ 
    var address ="1334 Emerson St, NE Washington DC"; 
    return this.http.get('https://maps.googleapis.com/maps/api/geocode/json?address='+encodeURIComponent(address)) 
        .map(response => response.json()); 
    } 
    } 
} 

響應應該包含結果的JSON,但是我收到以下:

可觀察{_isScalar:假,源:觀察的,操作者:MapOperator}

我嘗試將請求發送到其他URL並收到相同的響應。

+1

你在哪裏訂閱該觀察的? – echonax

+1

你爲什麼不更新。 Beta 18已經很老了。 –

+0

@GünterZöchbauer也許我錯了,我在一週前使用Angular-cli創建了一個項目。閱讀我的文件說,版本1.0.0-beta.18。 –

回答

1

您的convertAddressToCooredinate函數返回可觀察值。如果你沒有在你的代碼中訂閱這個觀察值,你將不會對你的後端進行休息。因此你只記錄你的觀察值。

例子:

Some Component 
constructor(private gms: GoogleMapService) { 
    this.gms.convertAddressToCooredinate('some address') 
     .subscribe((response)=>{ 
      console.log(response); 
     }); 
} 
+1

非常感謝你! –

+0

@DanaEzer很高興我能幫到你 – echonax