【发布时间】:2021-09-12 05:31:11
【问题描述】:
我在 Angular 组件中使用 HTML 5 地理位置:
...
export class AngularComponent {
...
constructor(private db: DatabaseService) {}
// this function is assigned to an HTML button
logCoords(message, action) {
navigator.geolocation.getCurrentPosition(this.success, this.error, this.options);
}
success(pos) {
function time() {
...
}
var crd = pos.coords;
var lat = crd.latitude
var long = crd.longitude
let newCoordinates = {'lat': lat, 'long':long, 'time': time}
this.db.addLocation(newCoordinates)
}
...
}
...
我想使用 Angular 服务将 getCurrentPosition 方法的结果存储在索引数据库中,但我无法访问组件类的任何属性(this.db 为空)。
为什么我无法在成功函数中访问 this.db 以及如何解决这个问题?
【问题讨论】:
-
你能在stackblitz上分享一些代码吗?
-
添加模块代码,你忘了在模块中注入服务。
-
模块被注入并在模板的其他部分工作;在成功内部,console.log 显示 this.db 为空。我认为这与我对 javascript 缺乏了解有关,因为成功功能正在地理定位库的其他地方使用...
-
用
success = (pos) => {替换success(pos) { -
有道理。希望我有一个技术描述为什么这不起作用。愿上帝保佑你。
标签: javascript angular typescript geolocation