2017-11-02 4 views
0

を発射しませんマウスオーバーは起動しません。 on-mouseoverを使用すると動作しますが、 'loc'に格納されているJSONの角度チョークがあります。これをどうやって解決するのですか?私はどこかコンパイルが必要かどうか疑問に思っていますが、ng-mapをハックしたくないのですが、なぜコンパイルが必要なのかわかりませんが、マーカーディレクティブ内のng-mouseoverがGoogleマップで認識できるイベントに正しくコンパイルされていますか?NG-マウスオーバーは、(angularjsでGoogleマップを実装するための人気NG-マップライブラリを使用して)私はNG-マップを持っている

答えて

0

私はJSONを補間していない場合は、角度はもはやそれにチョークないので、私は、オンマウスオーバー使用することができ、働く:

<ng-map> 
    <div ng-repeat="loc in mapsCtrl.locations"> 
     <marker on-mouseover="mapsCtrl.handleMarkerMouseover(loc)" 
     ... 
</ng-map> 
0

私はすでにあなた自身の質問に答えました知っているが、私はこの同じ問題に苦労しており、いくつかの追加ポイントを持っています!

NgMapライブラリは、Google Maps APIのラッパーに過ぎません。これは、角度ディレクティブではなく、APIで使用されるイベントと同じJavaScriptイベントであることを意味します。

あなたが発見したように、オンマウスオーバーイベントを使用することもできますが、注意しなければならないのは、メソッドに戻される最初のオブジェクトは実際にはイベントそのものです(これは幸いにもマーカーlocation)角度オブジェクトが必要な場合は、実際には2番目の引数になります。お使いのコントローラで

vm.positions = [ 
    {pos:[40.71, -74.21], name: "marker 1" }, 
    {pos:[40.72, -74.20], name: "marker 2" }, 
    {pos:[40.73, -74.19], name: "marker 3" }, 
]; 

//NOTE THE TWO ARGUMENTS FOR THIS METHOD 
vm.myMethod = function (event, angularObj) 
{ 
    console.log(event.latLng); //The Event contains the latLng 
    console.log(angularObj.name) 
} 

そして、あなたのビューで:

<ng-map zoom="11" center="[40.74, -74.18]"> 
    <marker ng-repeat="p in vm.positions" 
    position="{{p.pos}}" 
    /* NOTE THE USE OF ON-CLICK AND THE ANGULAR OBJECT BEING PASSED IN 
    THAT WILL ACTUALLY BE THE SECOND ARGUMENT FOR THE METHOD IN YOUR CONTROLLER */ 
    on-click="vm.logData(p)" 
    title="pos: {{p.pos}}"></marker> 
</ng-map> 

私はここにこれを実証plunk持っている:https://embed.plnkr.co/K5LZyF/

関連する問題