私が持っているグーグルマップGoogleマーカーに加えて、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秒後に開始します。
ただ、テスト目的のために、私は私のHTMLにボタンを追加しました:
<button mat-button (click)="sidenav.toggle()">Open sidenav</button>
そしてsidenavはこれですぐに開きます。
誰かが、なぜHTMLからではなくコンポーネントからsidenavを開くのに遅延があるのかを知りませんか?
編集:遅延の範囲は1〜3秒です。時には速いですが、時には遅い場合もあります。
Edit2:別のテストを行い、独自のsidenavソリューション(いくつかのhtml、アニメーションなど)を思いついた。また、コンポーネントから呼び出されたときにはまだ遅いので、Angular Materialの問題ではありません。すべての手がかりは?
**フルコード**を表示できますか?それは助けるかもしれない。 – Edric
Edric、これはsidenavを担当する唯一のコードです。私は詳細を私の質問に更新しました。 –
アンギュラマテリアルとは関係がありませんが、Googleマーカーにイベントリスナーが追加されています。 –