내가 가진 구글지도 구글 마커에 추가하고 Angular2 SideNav는 다음과 같이 페이지에 추가 : 내가 가진 내 구성 요소에서지연은 10 개 마커
<mat-sidenav-container>
<div id="map">Google Map [Code omitted]</div>
<mat-sidenav #sidenav position="end" align="end" class="user-sidenav"></mat-sidenav>
</mat-sidenav-container>`
:
@ViewChild(MatSidenav) sidenav: MatSidenav;
// ...
google.maps.event.addListener(gmr, 'click', (function(marker) {
return function() {
self.handleMarkerClick(marker);
};
})(gmr));
gmr
은 다음과 같습니다
각 마커는 다음과 같은 코드로 추가 이벤트 리스너를 가지고 google.maps.Marker
및 self
= this
handleMarkerClick
은 다음과 같습니다 그것이 수행
private handleMarkerClick(marker: any) {
this.sidenav.open();
console.log('sidenav open');
}
있는 유일한 방법은 각도 재료 Sidenav을 엽니 다. 마커를 클릭 한 후 sidenav가 열리기 2-3 초가 지연됩니다. console.log()
의 도움으로 'sidenav open'이 마커를 클릭 한 순간과 동일한 순간에 인쇄되지만 sidenav 애니메이션은 2-3 초 후에 시작됩니다.
<button mat-button (click)="sidenav.toggle()">Open sidenav</button>
을 그리고 sidenav이와 함께 즉시 열립니다
그냥 테스트 목적으로, 나는 나의 HTML에 버튼을 추가했습니다.
사람이 HTML 대신 구성 요소에서 sidenav를 여는 데 지연이있는 이유를 알고 있습니까?
편집 : 지연 범위는 1-3 초입니다. 때로는 빠르기도하고 때로는 느려지기도합니다.
Edit2 : 다른 테스트를 수행하고 사용자 정의 sidenav 솔루션 (일부 html, 애니메이션 등)을 만들었습니다. 각도 재료는 기본적으로 sidenav를 복제합니다. 그리고 컴포넌트에서 호출 될 때 여전히 느리기 때문에 Angular Material 문제가 아닙니다. 모든 단서?
** 전체 코드 **를 표시 할 수 있습니까? 도움이 될 수도 있습니다. – Edric
에드 리크,이 코드는 사이드 나브의 유일한 코드입니다. 더 자세한 내용으로 내 질문을 업데이트했습니다. –
Angular Material과 관련이 없지만 Google 마커에 이벤트 리스너가 추가되었습니다. –