.
이
console.log("THIS OUTSIDE listener callback:", this)
google.maps.event.addListenerOnce(this.map, 'idle', function() {
this.loaded = true;
console.log("THIS INSIDE listener callback:", this)
}.bind(this));
콘솔 출력은 다음과 같습니다 : 그래서
"THIS OUTSIDE listener callback: MapaComponent {loaded: false, latitude: 31.7413, longitude: -60.5115, bounds: _.ae, zoom: 12…}"
"THIS INSIDE listener callback: MapaComponent {loaded: true, latitude: -31.7413, longitude: -60.5115, bounds: _.ae, zoom: 12…}"
... 내가 추측 글쎄, 난 종류의이 같은 내 콜백 .bind (이)를 추가하여 범위 문제를 해결할 생각 범위 문제가 해결되었습니다. 그러나 내 스피너는 숨겨져 있지 않으며 페이지가로드 될 때 내지도를 볼 수 없습니다. 내 앱에서 다른 페이지로 이동 한 다음 내지도 페이지로 돌아 가면 회 전자가 숨기고 모든 것이 정상적으로 작동합니다. 내 구성 요소 코드 (요약) :
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'mapa-global',
template: `
<div class="container" [hidden]="loaded">
<div class="preloader-wrapper active" id="loader">
<div class="spinner-layer spinner-red-only">
<div class="circle-clipper left">
<div class="circle"></div>
</div><div class="gap-patch">
<div class="circle"></div>
</div><div class="circle-clipper right">
<div class="circle"></div>
</div>
</div>
</div>
</div>
<div id="map-canvas-container" [hidden]="!loaded">
<div id="map-canvas"></div>
</div>
`,
styleUrls: ['./mapa.component.css']
})
export class MapaComponent implements OnInit {
public loaded: boolean = false;
private latitude: number = -31.7413;
private longitude: number = -60.5115;
private bounds: any = new google.maps.LatLngBounds();
private zoom: number = 12;
map: any;
ngOnInit() { this.initMap(); }
initMap() {
this.map = new google.maps.Map(document.getElementById('map-canvas'), {
center: { lat: this.latitude, lng: this.longitude },
zoom: this.zoom
});
console.log("THIS OUTSIDE listener callback:", this)
google.maps.event.addListenerOnce(this.map, 'idle', function() {
this.loaded = true;
console.log("THIS INSIDE listener callback:", this)
}.bind(this));
}
}
의견이 있으십니까? 어쩌면 [숨겨진] 지시문이 잘못된 방식으로 구현되었을 수 있습니까?
감사합니다. 그러나 작동하지 않았습니다. –
괜찮습니다. 이전 해결책을 사용해보십시오.이 말을 참고하여 변수 콜백을 선언하십시오. const self = this; google.maps.event.addListener (map, 'idle',() => { self.isLoaded = true; }); –
도 작동하지 않았습니다. 이 후 내가 만든 게시물을 확인해 주시겠습니까? Thnks –