我有一個包含Google Maps JS API的Angluar2應用程序。我打開谷歌地圖這樣的:Angular2 Google地圖事件 - > UI更改被延遲,爲什麼?
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY"> </script>
我聽事件地圖這樣的:
this.map = new google.maps.Map(document.getElementById('map'), {
center: {lat: lat, lng: lng},
zoom: zoom
});
this.map.addListener('click',() => {
console.log("Map click");
this.key++;
});
我展示模板的關鍵是:
<div>{{key}}</div>
更新key
,使用常規功能在UI中立即生效。使用上述功能更新key
需要10-20秒來更新。我可以看到事件在控制檯中立即觸發。如果我切換標籤,例如:我的應用程序 - >另一個頁面 - >回到我的應用程序,該值也會立即更新。
因此,我想,沒有檢測並更新了上面的代碼到用戶界面的變化:
constructor(private ref: ChangeDetectorRef) {
.... code in between ....
this.map.addListener('click',() => {
console.log("Map click");
this.key++;
this.ref.detectChanges();
});
這將更新立即key
。
爲什麼Google地圖中的事件不能像往常一樣立即識別?
順便說一句:這也會發生在其他事件中,例如center_change或標記點擊。
vanila ggooogle地圖? –
由於沒有官方的支持谷歌地圖的Angular2軟件包,我只是使用以下代碼加載它:'。更新我的問題。 – Robin
將這個腳本放在頭部 –