我正在使用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}
我尝试将请求定向到其他网址并收到相同的回复。
答案 0 :(得分:1)
您的convertAddressToCooredinate
函数返回一个observable。如果您未在代码中订阅此可观察对象,则不会对您的后端进行休息调用。因此,您只记录您的observable。
示例:
Some Component
constructor(private gms: GoogleMapService ) {
this.gms.convertAddressToCooredinate('some address')
.subscribe((response)=>{
console.log(response);
});
}