ERROR TypeError: Cannot read property 'ds' of null
ERROR TypeError: Cannot read property 'ds' of null
我正在使用 angular 创建一个应用程序,该应用程序会询问使用浏览器的用户的位置。
下面是我的 ts 文件代码片段。
这是ts文件中的构造函数。
constructor(private route: ActivatedRoute, private router: Router, private ds: DataService) { }
这是函数
showposition(position) {
var lati = position.coords.latitude;
var long = position.coords.longitude;
console.log(lati, long);
this.ds.storeLocation({
// email:this.email,
longitude: long,
lattitude: lati,
})
.subscribe((response) => {
if (response.status == "ok") {
alert('Your location successfuly stored');
}
else {
alert("error in saving location");
}
})
}
console.log() 正在控制台屏幕上打印纬度和经度,但 错误出现在 this.ds.storeLocation。
此外,我还在 data.service.ts 文件中编写了所有必要的代码 -
storeLocation(d):any{
return this.http.post('http://localhost:3000/corona-tracker', d);
}
根据评论,函数showposition()
是一个回调函数。为了在回调中保留 this
关键字的含义,您可以使用 bind()
function with this
keyword, or use arrow function 表示法。尝试以下
navigator.geolocation.getCurrentPosition(this.showposition.bind(this));
您应该为 showposition
定义箭头函数,否则您应该为普通函数表达式绑定 this
。
我正在使用 angular 创建一个应用程序,该应用程序会询问使用浏览器的用户的位置。 下面是我的 ts 文件代码片段。
这是ts文件中的构造函数。
constructor(private route: ActivatedRoute, private router: Router, private ds: DataService) { }
这是函数
showposition(position) {
var lati = position.coords.latitude;
var long = position.coords.longitude;
console.log(lati, long);
this.ds.storeLocation({
// email:this.email,
longitude: long,
lattitude: lati,
})
.subscribe((response) => {
if (response.status == "ok") {
alert('Your location successfuly stored');
}
else {
alert("error in saving location");
}
})
}
console.log() 正在控制台屏幕上打印纬度和经度,但 错误出现在 this.ds.storeLocation。
此外,我还在 data.service.ts 文件中编写了所有必要的代码 -
storeLocation(d):any{
return this.http.post('http://localhost:3000/corona-tracker', d);
}
根据评论,函数showposition()
是一个回调函数。为了在回调中保留 this
关键字的含义,您可以使用 bind()
function with this
keyword, or use arrow function 表示法。尝试以下
navigator.geolocation.getCurrentPosition(this.showposition.bind(this));
您应该为 showposition
定义箭头函数,否则您应该为普通函数表达式绑定 this
。