材料对话框在调用时卡住单击传单标记



我有一个项目,我有一个地图(使用ngx-leaflet(.
单击标记时,我想显示来自角度材质的对话框。

对话框打开,但当我单击关闭按钮时,它会再次重新打开,然后关闭。

我尝试过:

  • 延迟使用超时的对话
  • 触发主题以打开对话框
  • 删除和创建新对话框
  • 在ngx传单和角材料的问题中搜索此错误

我发现了什么:

  • 所有生命周期钩子都是在发生某些事情后触发的(点击,后面的js事件,任何东西(
  • 对话框可以像我想要的那样简单,它不会改变任何东西
  • 当我在对话框关闭时
  • 再次打开对话框时(在对话框关闭之后(,它正常工作

示例代码的进一步说明:

  • 在 App.component.ts 中,我将事件处理程序绑定到每个标记,然后在另一个函数中打开对话框
  • 该代码是我在网上找到的这个项目的一个分支(只是更新了依赖项(

演示

我在这里做了一个演示:示例项目。

原因是你在"角度世界"之外尝试打开模态,因为它与谷歌地图标记上的click事件相关联。然后你就会有这些类型的不一致。

2 解决方案:

  • 使用 agm-map lib 来划分 google map API
  • 继续直接使用谷歌地图API,但添加NgZone以明确告知您想在角度世界中执行一些代码:

m.addEventListener("click", ()=> { this.zone.run(() => {this.openExampleDialog();}) })

在这里工作小提琴

最新更新