ngOninit 变量未在 html Angular 4 中绑定

2023-12-25

在谷歌地图上工作,能够显示地图,我想显示当前位置但不显示

     export class AppComponent {
      title = '';

      ngOnInit() {
    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 geocoder = new google.maps.Geocoder();

             if (geocoder) {
            geocoder.geocode({ 'latLng': LatLng}, function (results, status) {
           if (status == google.maps.GeocoderStatus.OK) {
             console.log(results[0].formatted_address);
                 this.title = results[0].formatted_address;
                 console.log(this.title);
                 }
           else {
            console.log("Geocoding failed: " + status);
           }
        });
      }
    });
      } else {
          alert('Geo Location feature is not supported in this browser.');
      }

}

在这里“this.title”,我正在获取当前位置

HTML代码

<h1> The Title is: {{title}}</h1>

在控制台中我可以看到标题值,为什么它没有绑定在 html 中?


您正在使用变量title声明范围内AppComponent类,在回调函数的作用域里面geocode。您必须使用其原始范围来访问标题。

诀窍是存储this到一个变量中,在本例中是范围应用组件

export class AppComponent {
    title = '';
    var self = this;
    ......
}

然后在任何回调函数中使用它。在你的例子中,它是里面的回调函数geocode call

geocoder.geocode({ 'latLng': LatLng}, function (results, status) {
   if (status == google.maps.GeocoderStatus.OK) {
       console.log(results[0].formatted_address);
       self.title = results[0].formatted_address; //Here we are using self, as the original context of title
       console.log(this.title);
   }
   else {
       console.log("Geocoding failed: " + status);
   }
});

另一个问题中也提供了答案this 变为 null https://stackoverflow.com/a/47766040/8438534

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ngOninit 变量未在 html Angular 4 中绑定 的相关文章

随机推荐

  • 如何管理多个 apache 服务器上的单个 PHP5 会话?

    您好 我必须从多个网络服务器检索数据 首先 我以用户身份登录我的网站 成功登录后 我必须从不同的网络服务器获取数据并显示 如何与多个服务器共享单个会话 我怎样才能实现这个目标 当我第一次登录时 它会创建会话并将会话 ID 保存在该服务器的临
  • 如何通过环境变量添加气流池?

    就像可以通过名称后面的环境变量设置连接一样AIRFLOW CONN conn id 有没有办法设置池 这样我就可以设置一个本地 Docker 测试环境 并填充所有配置 None
  • AdMob 插页式广告已显示但无法点击

    我有一个应用程序 可以在某些活动关闭时显示插页式广告 我使用不同的活动来展示广告 到目前为止 它正确显示了广告 但当我点击广告时没有任何反应 我已经在许多设备上进行了测试 测试人员报告了相同的行为 日志中没有错误 如果我使用调试版本或上传到
  • Delphi 中图标的线程加载

    使用Delphi 2009 尝试制作一个启动器 为了使其 敏捷 我真的很想在后台线程中加载图标 我已经使用了这里找到的解决方案 能否从 Vista Shell 获取 48x48 或 64x64 图标 https stackoverflow
  • 如何将 gecko 可执行文件与 Selenium 一起使用

    我使用的是 Firefox 47 0 和 Selenium 2 53 最近 Selenium 和 Firefox 之间出现了一个 bug 导致代码无法运行 解决方案之一是使用 Marionnette 驱动程序 我按照这个指示site htt
  • 我可以使用 VS2010 PrivateObject 访问静态类中的静态字段吗?

    是否可以使用 VS2010 单元测试类 PrivateObject 访问静态类中的私有静态字段 假设我有以下课程 public static class foo private static bar 我可以使用 PrivateObject
  • Javascript 中的任务运行器

    我有一个任务列表 只有在解决每个任务的所有依赖关系后才需要执行所有这些任务 我正在努力找出一种方法来在最佳时间完成所有任务 Each node is a async job illustrated by setTimeout A and C
  • 在 Windows 环境中使用 C++ 进行 GUI 开发 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 首先请大家理解 我搜索了这个并搞乱了几个星期 我终于放弃了单独的努力 并决定向这个可爱的社区寻求帮助
  • 用于循环赛的Python程序

    我正在编写一个程序 允许用户输入甚至数量的玩家 然后它将生成循环赛时间表 n 2 n 1游戏数量 以便每个玩家都与其他玩家进行比赛 现在我很难生成用户输入的玩家数量列表 我收到此错误 类型错误 int 对象不可迭代 我在我的程序中经常遇到这
  • 使用图像进行相似图像搜索

    我正在开发一个项目 其中将检查两个图像的相似性 例如 Google Image Search by image 我通过 Google 以及包括 stackoverflow 在内的各种网站进行了搜索 并了解了各种技术 例如直方图 筛选 傅里叶
  • Android 工作室:java.lang.NoClassDefFoundError

    我已将我的项目从 Eclipse 导入到 Android Studio 并且它在 Lollipop 设备上运行 如果我在 kitkat 设备上运行 它会给我 未找到类定义 异常 在我的项目中我有两个包1 com qapp它具有核心功能类和2
  • 来自解构函数的调试断言失败 BLOCK_TYPE_IS_VALID(pHead->nblockuse)

    我现在很迷失 我做了一个向量类 一切都按照我希望的方式进行 直到最后 调用析构函数时 我收到一条错误消息 调试断言失败 BLOCK TYPE IS VALID pHead gt nblockuse 我在 SO 上看到过很多像这样的问题 但我
  • SQL Server T-SQL 中的整数最大值常量?

    T SQL 中是否有像其他语言中的常量一样提供数据类型 例如 int 的最大值和最小值范围 我有一个代码表 其中每一行都有一个上限和下限列 我需要一个条目来表示一个范围 其中上限是 int 可以容纳的最大值 有点像黑客无穷大 我不想对其进行
  • 通过 Javascript 缓存与在服务器中设置 HTTPResponse 标头有什么区别

    在前端 我使用 AngularJS resource 进行 GET 请求 在后端 我使用 SpringMVC 以 Restful 方式公开我的方法 现在我想缓存只有一些 of my GET要求 我注意到有一些方法可以做到这一点 例如使用 c
  • 如何以编程方式填充使用 React 构建的输入元素?

    我的任务是抓取用 React 构建的网站 我正在尝试填写输入字段并使用 javascript 注入到页面 移动设备中的 selenium 或 webview 提交表单 这对其他所有网站 技术来说都是一种魅力 但 React 似乎是一个真正的
  • 从 Web 应用程序中删除经过 Firebase 身份验证的用户

    我想添加选项以从我的 Web 应用程序中从经过 Firebase 身份验证的用户列表中删除用户 我使用的身份验证方法是电子邮件和密码身份验证 该应用程序是移动单页应用程序 基于js html css 文件 浏览器应用程序 我可以使用 fir
  • LINQ TO Nhibernate 计数

    我正在尝试使用 LINQ to Nhibernate 来获取数据库中表的计数 但是 我正在运行的代码是拉回表中的所有记录 而不是从表中运行 select count 这是我的代码 public int GetTotalCount Func
  • 我需要将 strtol 的结果转换为 int 吗?

    以下代码不会对 g 4 1 1 发出警告 并且 Wall int octalStrToInt const std string s return strtol s c str 0 8 我期待一个警告 因为 strtol 返回一个long i
  • LINQ 表达式树是真正的树吗?

    LINQ 表达式树是否是正确的树 如图中所示 有向或无向 维基百科似乎不太同意 而没有循环 以下 C 表达式的表达式树的根是什么 string s gt s Length 表达式树如下所示 其中 gt 表示可访问其他节点的节点的属性名称 g
  • ngOninit 变量未在 html Angular 4 中绑定

    在谷歌地图上工作 能够显示地图 我想显示当前位置但不显示 export class AppComponent title ngOnInit if navigator geolocation navigator geolocation get