0

angularjs と ngmap ( https://ngmap.github.io ) を使用しています。マップは最初はビューから非表示になっています (ng-show を使用)。マップ全体をリロードせずにビューを切り替えることができるようにしたいと考えています。また、地図上に kml を表示したいと考えています。

マップは、ページのその部分が表示されているときにのみ初期化されます (遅延初期化を使用)。

マップが kml にズームインできない場合があることを除いて (fitBounds を使用)、正常に動作しているようです。これは、含まれている div の高さがゼロであり (ビューが実際にレンダリングされる前にコントローラー コードが起動するため)、fitBounds がそれを必要とするためであることを確立したと思います。

マップが完成し、準備ができていると確信できるまで待ちたいと思います。次のイベントを試しました。

  • bounds_changed
  • タイルをロードした

しかし、どちらも私が望むことはしません。

現在、私は $timeout を使用していますが、マップの初期化にかかる時間と、その間にコードが起動するかどうかがわからないため、好きではありません。

私の次のアイデアは、マップの高さを繰り返し確認することですが、もっと明確なものを好むでしょう。

もう 1 つのアイデアは、マップを常に背景に置き、その部分が表示されているときに絶対配置を使用して他の情報でカバーすることですが、それでは現在の設計が崩れます。

4

1 に答える 1

0

問題を回避することにしました。

マップは常に存在しますが、いくつかの ng-class を使用して「可視性: 非表示」にし、マップ タブが選択されていないときに不要なスクロール バーを非表示にします。

可視性が (display: none ではなく) 非表示である限り、マップの初期化と配置は正常に行われます。

完璧ではありません (いつか他のタブをスクロールする必要があるかもしれません) が、今のところ問題なく機能しています。

于 2016-04-27T10:15:04.613 に答える