Angular2如何在其他人打开时隐藏infoWindow

时间:2016-06-01 09:22:49

标签: typescript angular

我有一个infoWindow叠加层,我创建它以将div附加到谷歌地图类的父级。

现在我想在其他infoWindow打开时关闭它,我试过的是:

lastClicked: SebmGoogleMapInfoWindow;
if (this.lastClicked){
    console.log(this.lastClicked);
    this.lastClicked.close();
}

但是在这个讨论中HERE你看到它没有用,而是我提出了像这样的hacky解决方案:

$('.gm-style-iw').next('div').find('img').click();

但是当有其他人打开时,有没有办法关闭当前打开的infoWindow

这是PLUNKER

1 个答案:

答案 0 :(得分:3)

您可以尝试这样的事情:

(markerClick)="updateDiv(location, infowindow)"

然后在updateDiv方法

updateDiv(location: Location, infoWindow) { <== pass current infoWindow
  ...
  if (this.lastClicked && this.lastClicked !== infoWindow){
     this.lastClicked.close();
  }
  this.lastClicked = infoWindow; <== add this line
}

查看更新的plunkr https://plnkr.co/edit/QZLs74?p=preview