agm-marker 的 markerClick() 返回 null

agm-marker's markerClick() is returning null

从 angular google 地图 API 中,我们有一个具有以下定义的 markerClick() 函数,

 @Output() markerClick: EventEmitter<void> = new EventEmitter<void>();

但是当我在我的应用程序中使用时,我得到 NULL

我有以下应用程序代码,

在我的 HTML 文件中,

<agm-map [latitude]="latitude" [longitude]="longitude" [zoom]="zoom">
        <agm-marker *ngFor="let marker of coordinates;" 
        [iconUrl]="icon" 
        [latitude]="marker.latitude" 
        [longitude]="marker.longitude"
        [markerClickable]="true"
        (markerClick)="markerClicked($event)">
    </agm-marker>
    </agm-map>

而在 .TS 文件中,

 markerClicked($event: MouseEvent) {
    console.log('clicked'); ----------------(1)
    console.log($event);--------------------(2)
  }

对于语句 (2),我得到 NULL 作为控制台输出。 我期待它是标记对象。我的理解错了吗? 如何从 markerClick() 函数获取纬度和经度。

注意,我已经在 mapClick() 函数中使用 agm-map 标签, 但当我使用该功能时,它不响应点击地图上已绘制的标记。

如果你深入研究 FILE 它总是会发出 null :

this.markerClick.emit(null); // line no : 192

你能做的就是改变这个:

(markerClick)="markerClicked($event)"

收件人:

(markerClick)="markerClicked(marker)" // this way you will get the marker object

WORKING DEMO(点击任何可用标记)

在app.component.html

<agm-map>
<agm-marker  *ngFor="let place of markers" [latitude]=place.lat [longitude]=place.lng  title={{place.title}}  (markerClick)="clickedMarker(place.lat, place.lng)" >
<agm-info-window><strong>{{place.label}}</strong></agm-info-window>
</agm-marker>
</agm-map>

在app.components.ts

markers: any[] = [];

selectedLat: Number = 0;
selectedLng: Number = 0;

clickedMarker(lat: number, lng: number) {
this.selectedLat = lat;
this.selectedLng = lng;
}

这里当标记被点击时它调用 clickedMarker(lat: number, lng: number) 函数。 selectedLat 和 selectedLng 变量从 (markerClick)="clickedMarker(place.lat, place.lng)

的发送参数更新

不会这样使用(markerClick)="markerClicked($event)"