javascript - 这在 javascript 函数中变为 null

标签 javascript angular typescript ecmascript-6

我有 java 脚本函数,它在该函数内部给出当前的经纬度,使一个像这样的 http post 调用“this.http.post”但是函数内部的这个 null 的值

我的代码

ngOnInit(): void {
    if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(function(p) {
          var LatLng = new google.maps.LatLng(p.coords.latitude, p.coords.longitude);
          console.log(p.coords.latitude);
          console.log(p.coords.longitude);
          var dataObj = {
            latitude: p.coords.latitude,
            longitude: p.coords.longitude
          };
          this.http.post('https://XXXXX/datacenteres.php', {
              dataObj
            })
            .subscribe(
              res => {
                console.log(res);
              },
              err => {
                console.log("Error occured");
              }
            );
        }
      }
    }

我在控制台中收到此错误“无法读取 null 的属性‘http’”。

在 navigator.geolocation.getCurrentPosition(function (p) { 这是 null }

在 If 语句中,我能够得到“this”。

最佳答案

你可以像下面这样使用箭头函数:

if (navigator.geolocation) {
      navigator.geolocation.getCurrentPosition(p => {
        //var LatLng = new google.maps.LatLng(p.coords.latitude, p.coords.longitude);
        console.log(p.coords.latitude);
        console.log(p.coords.longitude);
        var dataObj = {
          latitude :p.coords.latitude,
          longitude:p.coords.longitude
        };
        this.http.post('https://XXXXX/datacenteres.php', {
          dataObj
        })
          .subscribe(
            res => {
              console.log(res);
            },
            err => {
              console.log("Error occured");
            }
          );
      })
    }

关于javascript - 这在 javascript 函数中变为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47765797/

相关文章:

javascript - 来自 Javascript 页面的数据控制调用

javascript - 在 Internet Explorer 中解析 xml 文档时 getAttribute 出错

angular - 每个 Angular 模块如何有一种样式?

javascript - Angular 捕获所有浏览器的后退按钮事件

javascript - 为什么这个函数组件在 setState 之后没有重新渲染?

javascript - 这个函数可以通过多少种方式简化?

c# - 如何对动态获取数据的 11 个条形图使用通用的 jqPlot 函数?

angular - 初始化后如何将Validators设置为FormGroup

javascript - 在 Angular 8 中监听 DOM 事件的最佳实践是什么?

javascript - 使用 Map 的 Angular 6 HttpClient