2016-05-25 43 views
0

を経由してここangular google mapの抜粋です:

<ui-gmap-markers models='theWinner' events="map.markerEvents" coords='"coordinates"'> 
    <ui-gmap-windows show="show"> 
     <div ng-non-bindable>{{ coordinates }}</div> 
     <div ng-click="$root.derp(coordinates)">navigate</div> 
    </ui-gmap-windows> 
</ui-gmap-markers>   

私は角度のGoogleマップの中からそれを使用するために$rootにするderp()を必要としています。私はまた、普通の '$scopeで定義されているcoordinatesを渡す必要があります。そのままでは、上記のコードは動作しません。テンプレートには{{ coordinates }}が使用できますが、ではなく、$root.derp()が渡されていません。

この問題を解決する最もクリーンな方法は何ですか?ありがとう!

編集:私が明示的にそうように、$root変数にcoordinatesのコピーを作成することができますように私には発生します。同じ変数の2つのコピーを持つ、厄介なの

$scope.$root.coordinates = coordinates; 

種類が、それは動作します。より良い方法がありますか?私は、私が必要とする以上に$ rootを乱用するのは好きではありません。

答えて

0

$rootになるためには必ずderp()が必要ですか?コントローラ間でデータを共有するためには、工場/サービスを使用する必要があります。 既にあなた自身に答えているような方法がない場合、正しい方法は値を "コピー"して設定することです。 A similar question