我使用Angular Google Maps(AGM)组件。我需要在标记鼠标悬停时打开信息窗口。如何在我的函数onMouseOver中检索infowindow实例来打开它?
<agm-map [fitBounds]="latlngBounds" [zoom]="15">
<agm-marker *ngFor="let m of markers; let i = index"
[latitude]="m.geoCode.latitude"
[longitude]="m.geoCode.longitude"
(mouseOver)="onMouseOver(m)"
>
<agm-info-window [disableAutoPan]="false">
<div>
<a (click)="onClickInfoView({id:m.id})" class="btn btn-attention pull-right">test<i class="fa fa-angle-double-right"></i></a>
</div>
</agm-info-window>
</agm-marker>
</agm-map>
onMouseOver(data) {
???? /* how to open here the info window?
}发布于 2017-10-04 15:46:57
最后,我找到了一个解决方案:
<agm-map #gm [fitBounds]="latlngBounds" [zoom]="15">
<agm-marker *ngFor="let m of markers; let i = index"
[latitude]="m.geoCode.latitude"
[longitude]="m.geoCode.longitude"
(mouseOver)="onMouseOver(infoWindow,gm)"
>
<agm-info-window [disableAutoPan]="false" #infoWindow>
<div>
{{m.name}}
{{m.rating}}
</div>
<div>
<a (click)="onClickInfoView({id:m.id})" class="btn btn-attention pull-right">Daje <i class="fa fa-angle-double-right"></i></a>
</div>
</agm-info-window>
</agm-marker>
</agm-map>
onMouseOver(infoWindow, gm) {
if (gm.lastOpen != null) {
gm.lastOpen.close();
}
gm.lastOpen = infoWindow;
infoWindow.open();
}发布于 2019-03-23 02:19:47
您可以添加mouseOut事件并创建函数来关闭InfoWindow onMouseOut
<agm-map #gm [fitBounds]="latlngBounds" [zoom]="15">
<agm-marker *ngFor="let m of markers; let i = index"
[latitude]="m.geoCode.latitude"
[longitude]="m.geoCode.longitude"
(mouseOver)="onMouseOver(infoWindow, $event)"
(mouseOut)="onMouseOut(infoWindow, $event)"
>
<agm-info-window [disableAutoPan]="false" #infoWindow>
<div>
{{m.name}}
{{m.rating}}
</div>
<div>
<a (click)="onClickInfoView({id:m.id})" class="btn btn-attention pull-right">Daje <i class="fa fa-angle-double-right"></i></a>
</div>
</agm-info-window>
</agm-marker>
</agm-map>
onMouseOver(infoWindow, $event: MouseEvent) {
infoWindow.open();
}
onMouseOut(infoWindow, $event: MouseEvent) {
infoWindow.close();
}发布于 2018-05-06 10:37:00
在我的例子中,onMouseover()只有在我将它设置为
onMouseOver(infoWindow, gm) {
if (gm.lastOpen && gm.lastOpen.isOpen) {
gm.lastOpen.close();
}
gm.lastOpen = infoWindow;
infoWindow.open();
}https://stackoverflow.com/questions/46541611
复制相似问题