agm-marker 的 markerClick() 返回 null

Ani*_*nil 3 google-maps-markers angular-google-maps angular

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

 @Output() markerClick: EventEmitter<void> = new EventEmitter<void>();
Run Code Online (Sandbox Code Playgroud)

但是当我在我的应用程序中使用时,我得到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>
Run Code Online (Sandbox Code Playgroud)

在 .TS 文件中,

 markerClicked($event: MouseEvent) {
    console.log('clicked'); ----------------(1)
    console.log($event);--------------------(2)
  }
Run Code Online (Sandbox Code Playgroud)

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

请注意,我已经将mapClick()函数用于agm -map 标签,但是当我使用该函数时,它没有响应对地图上已绘制标记的点击。

Viv*_*shi 7

如果您更深入地查看FILE,它总是会发出null

this.markerClick.emit(null); // line no : 192
Run Code Online (Sandbox Code Playgroud)

你可以做的是改变这一点:

(markerClick)="markerClicked($event)"
Run Code Online (Sandbox Code Playgroud)

到 :

(markerClick)="markerClicked(marker)" // this way you will get the marker object
Run Code Online (Sandbox Code Playgroud)

工作演示(点击任何可用的标记)