当调用onlet of leaflet Marker时,Material Dialog会卡住

Jon*_*ras 11 leaflet angular ngx-leaflet angular6 angular-material-6

我有一个项目,我有一个地图(使用ngx-leaflet).
点击一个标记,我想说明从对话框角材料.

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

我尝试了什么:

  • 使用超时延迟对话框
  • 触发打开对话框的主题
  • 删除并创建新的Dialog
  • 在ngx-leaflet和angular-material问题中搜索此错误

我发现了什么:

  • 发生某些事情后触发所有生命周期钩子(点击,后面的js事件,任何事物)
  • Dialog可以很简单,但不会改变任何东西
  • 当我关闭时再次打开对话框(在AfterClosed of Dialog中)它正常工作

示例代码的进一步说明:

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

演示

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

Cét*_*tia 7

原因是你在"角度世界"之外开辟了模态,因为它与click谷歌地图标记上的事件联系在一起.然后你有这些类型的不一致.

2解决方案:

  • 使用agm-map lib来对谷歌地图API进行角度化
  • 继续使用谷歌地图API,但添加NgZone明确告诉你要在角度世界中执行一些代码:

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

在这里工作小提琴