Angular [谷歌地图API]:有没有办法从typescript代码内部更改属性?
我正在从数据库中读取一些标记,并使用标签将它们呈现在谷歌地图上 这是代码的一部分,我在其中读取标记并将它们推入标记数组componentName.component.ts: 以及呈现标记的Html:Angular [谷歌地图API]:有没有办法从typescript代码内部更改属性?,angular,typescript,google-maps-markers,Angular,Typescript,Google Maps Markers,我正在从数据库中读取一些标记,并使用标签将它们呈现在谷歌地图上 这是代码的一部分,我在其中读取标记并将它们推入标记数组componentName.component.ts: 以及呈现标记的Html: <agm-map [latitude]="latitude" [longitude]="longitude" [zoom]="zoom" [disableDefaultUI]="false" [streetViewControl]="false"
<agm-map
[latitude]="latitude"
[longitude]="longitude"
[zoom]="zoom"
[disableDefaultUI]="false"
[streetViewControl]="false"
[zoomControl]="false"
[mapTypeControl]="false"
[mapTypeId]="'terrain'"
>
<agm-marker id="display-markers"
*ngFor="let m of markers; let i = index"
(markerClick)="openModal('marker-content' + i)"
[latitude]="m.lat"
[longitude]="m.lng"
[markerDraggable]="m.draggable"
[iconUrl]="m.icon"
[visible]="true"
[id]="i"
</agm-marker>
</agm-map>
我需要使用户能够通过按下按钮清除所有标记,这意味着的[visible]属性应该为每个标记设置为False。如何从component.ts文件中访问标记并对其进行更改
有没有其他方法可以清除地图上的所有标记
我在网上找不到任何东西:
谢谢我没有完全理解这个问题,但我认为你需要: Html模板
希望能有所帮助。谢谢。看来你真的有问题了!但是,有没有一种方法可以真正删除标记,而不仅仅是更改其可见性?是的,仅在toggleMarkers方法中,您需要清除这样的标记数组。markers=[]。但是如果你不从服务器上再次下载它们,就不可能将它们返回。谢谢。成功了。我不敢相信我花了一整天的时间来尝试许多复杂的解决方案,而答案却如此简单明了。再次谢谢你,没问题,我很高兴它帮了我的忙。
<agm-map
[latitude]="latitude"
[longitude]="longitude"
[zoom]="zoom"
[disableDefaultUI]="false"
[streetViewControl]="false"
[zoomControl]="false"
[mapTypeControl]="false"
[mapTypeId]="'terrain'"
>
<agm-marker id="display-markers"
*ngFor="let m of markers; let i = index"
(markerClick)="openModal('marker-content' + i)"
[latitude]="m.lat"
[longitude]="m.lng"
[markerDraggable]="m.draggable"
[iconUrl]="m.icon"
[visible]="true"
[id]="i"
</agm-marker>
</agm-map>
...
<agm-marker id="display-markers"
...
[visible]="isMarkersVisible"
...
</agm-marker>
...
<button (click)="toggleMarkers()">{{isMarkersVisible ? "Hide" : "Show"}}</button>
...
...
isMarkersVisible = true;
...
ngOnInit(): void { ... }
...
toggleMarkers(): void {
this.isMarkersVisible = !this.isMarkersVisible;
}
...