Angular 2 HTTP无效

时间:2016-11-08 17:16:56

标签: google-maps angular geocode

我正在使用Angular 2 beta.18,并尝试使用谷歌地图地理编码。 我和所有教程描述的做法一样,但我收到了一个奇怪的回复。

我的组件:

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,但我收到以下内容:

Observable {_isScalar:false,source:Observable,operator:MapOperator}

我尝试将请求定向到其他网址并收到相同的回复。

1 个答案:

答案 0 :(得分:1)

您的convertAddressToCooredinate函数返回一个observable。如果您未在代码中订阅此可观察对象,则不会对您的后端进行休息调用。因此,您只记录您的observable。

示例:

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