gpt4 book ai didi

angularjs - 标记仅显示 JSON 数组中的最后一个元素

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

我试图在每个标记信息窗口中显示一个标题,该标题将显示事件的名称。现在我只能显示 JSON 数组中最后一个元素的名称,并且不确定如何使其他元素成为事件标题。任何帮助表示赞赏,谢谢!我还想最终与事件名称一起显示一些其他元素,例如“eventPhone”等......

信息窗口只显示最后一个元素:

current display

数组的样子:

JSON elements display

我的添加标记功能:

addMarkersMap(markers){
for(let marker of markers)
{
var loc = marker.calEvent.locations[0]['coords'];
var name = marker.calEvent['eventName'];

console.log(name); //displays name of each event within this object


marker = new google.maps.Marker({
position: loc,
map: this.map,

});



var infoWindow = new google.maps.InfoWindow({

//content: name
});


google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(this.map, marker);
infoWindow.setContent(name);
});



}
}

JSON:

http://app.toronto.ca/cc_sr_v1_app/data/edc_eventcal_APR?limit=500

最佳答案

编辑:因此,只需将所有 var 更改为 let 即可启用 let 的正确 block 范围变量声明,并且遵循约定。

您可能遇到关闭问题,其中 marker 的值是最后一个。

虽然 let 应该解决这个问题,因为它使您的 marker 处于 block 范围内,但请尝试将您的 addListener 放入 IIFE 中,看看是否有帮助:

(function(marker) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.open(this.map, marker);
});
}(marker));

有关关闭的更多信息 here

关于angularjs - 标记仅显示 JSON 数组中的最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46963925/

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