gpt4 book ai didi

angular - 悬停在相应元素上时更改标记颜色 -> Angular 4

转载 作者:行者123 更新时间:2023-12-02 16:53:01 26 4
gpt4 key购买 nike

当我将鼠标悬停在不同组件中的元素之一上时,我试图动态更改谷歌标记的颜色。我仍在学习 Angular,并尝试使用 Observables,但没有成功。

我有 main.view 组件来存储所有卡片(我称之为事件)。这是 main-view.component.ts 代码的一部分:

constructor( private eventService: EventsDataService) {
}
ngOnInit() {
this.getEvents();
}

我正在注入(inject)从服务器获取卡片数据的服务,并使用 getEvents 方法使用 Observable 将其转换为 JSON 数据。然后,我在 html 模板中使用 2 个 *ngFor 指令来迭代此数据并填充卡片和标记。这是代码:

main-view.component.html

<app-event-card *ngFor="let event of events; let i = index"></app-event-card>
</section>
<aside class="mapContainer" [class.fixed]="fixed">
<agm-map [class.fixed]="fixed" [latitude]= "latitude" [longitude]="longitude" >
<agm-marker *ngFor="let event of events; let i = index"
[latitude]= "event.location.coordinates[0]"
[longitude]="event.location.coordinates[1]"
label="{{event.price +'AUD'}}">
</agm-marker>
</agm-map>
</aside>

现在,当我将鼠标悬停在与标记相对应的一张卡片上时,我想更改标记的颜色或任何属性,但我不知道如何连接这两个组件的数据。

对于有关此问题的任何帮助或提示,我将不胜感激。

谢谢

最佳答案

map 外的标记列表

<ul><li *ngFor="let data of markers" (mouseenter)="updateColor(data.lat)" (mouseleave)="updateColorR(data.lat)">{{data.lat}}</li></ul>

标记

  <agm-marker 
*ngFor="let m of markers; let i = index"
(markerClick)="clickedMarker(m.label, i)"
[latitude]="m.lat"
[longitude]="m.lng"
[markerDraggable]="m.draggable"
[iconUrl]="m.icon"
(dragEnd)="markerDragEnd(m, $event)">

组件

updateColor(data:any){
this.markers.map((el,i)=>{
if(el.lat==data){
this.markers[i].icon='https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|4286f4';

}
})
}
updateColorR(data:any){
this.markers.map((el,i)=>{
if(el.lat==data){
this.markers[i].icon='https://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=%E2%80%A2|FF0000';

}
})
}

stackblitz演示

关于angular - 悬停在相应元素上时更改标记颜色 -> Angular 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49832819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com