0
我正在学习Angular 2.我使用带有Observable的LocationService,它在一段时间之后提供给我坐标。这是我的代码。Angular 2,订阅时收到坐标
location.service.ts
public getLocation(): Observable<any> {
return Observable.create(observer => {
if(window.navigator && window.navigator.geolocation) {
window.navigator.geolocation.getCurrentPosition(
(position) => {
observer.next(position);
observer.complete();
},
(error) => observer.error(error)
);
} else {
observer.error('Unsupported Browser');
}
});
}
app.component.ts
ngOnInit() {
this.location.getLocation().subscribe((coordinates) => {
this.lat = coordinates.coords.latitude;
this.lng = coordinates.coords.longitude;
});
}
我如何订阅坐标的接收这样我就可以呈现地图,添加一个标记, ..一旦我从第一个订阅接收它们。
谢谢!事实确实如此。我会添加我的app.component代码 – Notflip
@Notflip我刚刚更新了答案。 –
在我的代码中,我在app.component上设置了coords lat和lng变量,你会推荐这个吗?并为地图创建一个新的监听者/可观察者?或者只是在订阅第一个实例时执行所有的逻辑。看起来像凌乱的代码,不是吗? – Notflip