2016-08-18 10 views
0

UIルーターとUIのGoogleマップを使用しています。uiGmapIsReadyでGoogleマップを使用してIUルーターの状態を遷移させると、新しいマップではなく前のマップが表示されます

ドキュメントによれば、私はuiGmapIsReadyを使用して、マップがページ上で使用可能かどうかを知る必要があります。これは孤立して素晴らしい作品です。しかし、両方のページにマップが存在するページ間を移行すると、問題が発生します。

主な問題は、uiGmapIsReadyが新しいマップではなく、OLDマップのデータで即座に解消されるということです。 1つのマップを「サテライト」に変更して新しいページに切り替えることで、これを証明できます。新しいページはデフォルトで道路地図ですが、uiGmapIsReadyで公開されている地図には衛星のタイプがあります!

私は多くのことを試しましたが、何も動作していないようです。 IveはuiGmapIsReadyに登録しようとしましたが、$viewContentLoadedまたは$stateChangeSuccessのイベントが1回だけ発生しましたが、残念ながら早すぎます。

答えて

0

ソースコードを掘り後、私はあなたが約束に渡すこの

this.uiGmapIsReady 
    .promise(this.uiGmapIsReady.instances() + 1) 
    .then((mapInstances: any[]) => { 
     var map: google.maps.Map = mapInstances[mapInstances.length - 1].map; 
    }); 

数はあなたがそこにあることを期待してマップのインスタンスの数で解決する方法を考え出しました。番号が間違っていると、約束は返ってこない。だから、instances()を使用して現在のカウントを示し、それに1を加えなければなりません(新しいページが作成する地図の数です)。

最後に、配列内の最後のマップを取るだけで、常に最新のものになります。

関連する問題