我正在尝试使用Google地图标记创建自己的信息窗口。 当我点击标记时,我显示了一个div,但div内的信息没有更新。 event.title仍然是旧值。我必须在任何地方点击,然后显示div。如何在不点击的情况下更新视图/数据?感谢
function myMap(inputArray, callback){
const newArray = [];
for(let i=0;i<inputArray.length;i++){
newArray.push(callback(inputArray[i], i, inputArray));
}
return newArray;
}
每次我想在地图上显示新标记时,都会调用addMarker函数。
<div [style.display]="choice == 'maps' ? 'block' : 'none'" style="height: 100%; position: relative;">
<div #map id="map" style="width: 100%; height: 100%;">
</div>
<div id="over_map" class="infos" padding>
<h4 style="color: white;">{{ event.title }}</h4>
</div>
</div>
答案 0 :(得分:3)
我有类似的问题。这必须是Angulars Change Detection的问题。
从NgZone
导入@angular/core
,将其注入并尝试在区域内运行回调,如下所示:
google.maps.event.addListener(marker, 'click', () => {
this.zone.run(() => {
this.event = {
title: object.title,
content: object.description
}
$("#over_map").slideToggle("slow");
});
});