如何等待 Angular Google 地图将 getGMap 附加到控制对象

2023-11-27

我一直在尝试在google.maps.Map由创建的对象ui-gmap-google-map指令来自Angular 谷歌地图库.

我需要动态地执行此操作,因此(至少通过我的简短测试)似乎使用events上的参数ui-gmap-google-map指令不起作用(因为它似乎只“读取”参数值一次,但也许我错了)。

所以我决定使用control参数,它使用方法扩充由参数值命名的对象getGMap and refresh。这是我的指令用法:

<ui-gmap-google-map center="appCtrl.mapSetup.center"
                    zoom="appCtrl.mapSetup.zoom"
                    control="appCtrl.mapSetup">
</ui-gmap-google-map>

最后,我异步加载 Google Maps API,并依赖于GoogleMapApi服务/承诺(Angular Google 地图的一部分)了解我何时可以开始安全地处理google.maps.Map对象(例如添加事件侦听器等)。下面是一个小例子:

// inside the AppController constructor, see the fiddle linked below
var mapSetup = this.mapSetup;
GoogleMapApi.then(function () {
    google.maps.event.addListener(mapSetup.getGMap(), 'click', function () {
        alert('hello');
    });

所以当页面加载时(这是小提琴),我得到“TypeError:未定义不是一个函数”,因为mapSetup对象尚未被增强getGMap or refresh。根据我对文档的理解,似乎应该是这样。

我包裹了addListener打电话给$timeout(Angular 服务)使用了几百毫秒的延迟,然后它就起作用了,因为mapSetup那时物体已经被增强了getGMap.

有没有办法避免使用$timeout任意延迟等待,直到control-指定的对象实际上被增强了?


通过我的测试以及我在文档和各种问题评论中阅读的内容,似乎这(等待control对象得到增强)是其中之一uiGmapIsReadyAngular Google 地图中的服务是专为该服务而设计的。

我目前的理解是uiGmapGoogleMapApi应用于等待 Google Maps API 的异步加载并且uiGmapIsReady应该用来等待uiGmap*指令及其所涉及的所有内容(包括control对象增强)来完成。命名说明了一切。

Here's 一个新的演示小提琴。这个演示的用法是IsReady:

IsReady.promise().then(function (maps) {
    var map1 = $scope.control.getGMap();
    var map2 = maps[0].map;
    alert(map1 === map2); // true
});

IsReady.promise (source) 接受一个可选的整数参数,指示(我很确定)的数量ui-gmap-google-map您的页面正在使用的指令。它默认为1。 (如果你碰巧给了它一个“错误”的数字,我相信返回的承诺有可能永远不会解决。)

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

如何等待 Angular Google 地图将 getGMap 附加到控制对象 的相关文章

随机推荐

  • 为什么可变参数模板构造函数比复制构造函数更匹配?

    以下代码无法编译 include
  • Django 的 I18N 与第三方应用程序

    我有一个 Django 项目 它使用django tagging并且应该以德语运行 所以我查看了来源并发现django tagging确实使用gettext lazy因此是完全可翻译的 但是 包中没有可用的翻译 所以我认为必须有一种方法可以
  • 结合 R Markdown 和动画包

    有没有办法结合起来animation package和 r 降价 我想生成动画 我想在从 r markdown 生成的 html 文件中包含和描述该动画 当然我可以嵌入代码saveHTML or saveGIF文件已生成的 r markdo
  • Windows 中 TEMP 目录的限制?

    我有一个用 Python 编写的应用程序 它将大量数据写入 TEMP 文件夹 奇怪的是 每隔一段时间 它就会死去 然后回来IOError Errno 28 No space left on device 该驱动器有plenty的自由空间 T
  • 在 Linux 上通过 jenkins 运行 angular2 测试时出现 Karma 错误

    使用 karma 和 jenkins 运行我的 angular2 单元测试时 我看到以下错误 当我在本地计算机 Windows 上运行测试时 我的测试运行良好 但是当在 Linux 上通过 jenkins 运行测试时 我收到以下错误 Mis
  • 如何在WPF MVVM中调用窗口的Loaded事件?

    从我的 OnLoaded 事件创建命令很容易 处理程序代码 但如何从视图中调用它 从此不再切蛋糕 它调用 xaml cs 中的代码 我将如何创建一个 ICommand 相等的 您可以通过附加行为来完成此类事情 为了节省一些时间 看看 Mar
  • Promise.all() 被拒绝后的值,显示 [''PromiseStatus'']:如果存在 catch 块,则已解决

    我有两个承诺 一个被拒绝 另一个被解决 Promise all 被调用 当其中一个承诺被拒绝时 它执行了 Promise all 的 catch 块 const promise1 Promise resolve Promise 1 Reso
  • GTK 或 Qt 的图表小部件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 GTK 或 Qt 是否有一
  • NuGet 包依赖项

    对于一个包对其他库的每个依赖项 这些库是否也需要解析和安装 例如 我创建了一个使用的包NLog Postsharp and WindowsAzure Storage 我的软件包的客户端现在也必须安装这些软件包吗 为什么不能将这些依赖项 DL
  • 没有可见的接口错误

    我的模型的实现文件中有一个错误 我已将其注释掉 我可以做什么来解决这个问题 提前致谢 import CalculatorBrain h interface CalculatorBrain property nonatomic strong
  • 为什么在 `array.length && ...` 的短路计算中呈现“0”

    目前 我看到这样的行为 render const list return div list length div List rendered div div 我的预期是在该条件下不会呈现任何内容 但会呈现字符串 0 字符串 0 是list
  • spring-mvc中如何传递参数来重定向页面

    我写了以下控制器 RequestMapping value logOut method RequestMethod GET public String logOut Model model RedirectAttributes redire
  • 检查在自定义 Chrome 选项卡中打开哪个网址

    chrome自定义选项卡中是否有类似于Webview的onPageStarted的功能 在 onNavigation 捆绑包始终为空 根据设计 Chrome 自定义选项卡不可能做到这一点 您可以知道用户已经导航 但无法知道他们去了哪里 看
  • 检测浏览器关闭/导航到其他页面并注销的最佳方法

    我正在 GWT 中编写一个应用程序 我需要检测用户何时离开我的应用程序或何时关闭浏览器窗口 onUnload 事件 并执行注销 会话失效和其他一些清理任务 注销操作由 servlet 执行 我目前正在通过挂钩 onUnload 事件并打开一
  • 检查 LatLngBounds.Builder 是否为空

    这是我的代码 LatLngBounds Builder builder new LatLngBounds Builder for int x firstVisibleItem x lt lastVisibleItem x builder i
  • 如何提取直接 Facebook 视频 url

    我正在尝试从 facebook 视频链接中提取 facebook 视频文件页面的 url 但我无法继续操作 例如 我的 Facebook 视频网址是 https www facebook com nerdandco videos 16621
  • 如何在 Woocommerce 中检查产品是否具有特定产品属性

    我想确定产品是否具有属性 例如 if product has attribute pa color do something 我怎样才能做到这一点 您只需使用WC Product method get attribute 这边走 If ne
  • 在 keras 中加载模型后的不同预测

    我在 Keras 中构建了一个序列模型 经过训练后它给了我很好的预测 但是当我保存然后加载模型时 我没有在同一数据集上获得相同的预测 为什么 请注意 我检查了模型的权重 它们以及模型的架构都是相同的 并使用 model summary 和
  • 使用 Java 邮件服务器进行测试

    我正在测试一个应用程序 该应用程序从邮箱中取出邮件 根据该邮件的内容执行某些操作 然后根据操作的结果发送响应邮件 我正在寻找一种为此应用程序编写测试的方法 理想情况下 我希望这些测试能够启动自己的邮件服务器 将我的测试电子邮件推送到该邮件服
  • 如何等待 Angular Google 地图将 getGMap 附加到控制对象

    我一直在尝试在google maps Map由创建的对象ui gmap google map指令来自Angular 谷歌地图库 我需要动态地执行此操作 因此 至少通过我的简短测试 似乎使用events上的参数ui gmap google m