2016-05-25 85 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>   

我需要derp()是在$root爲了從角谷歌地圖中使用它。我還需要通過coordinates,這些是在'$scope'中定義的。按原樣,上述代碼不起作用。 {{ coordinates }}可用於模板,但不是它們是不是傳遞到$root.derp()

解決此問題的最簡潔方法是什麼?謝謝!

編輯:它發生,我認爲我可以明確地在$root變量創建coordinates的副本,就像這樣:

$scope.$root.coordinates = coordinates; 

類凌亂,具有相同變量的兩個副本,但它的工作原理。有沒有更好的辦法?我不喜歡濫用$ root比我更多。

回答

0

爲什麼你需要derp()在$root?如果它爲了在控制器之間共享數據而使用工廠/服務。 如果你沒有辦法解決問題,那麼正確的方法是「複製」/設置值。 A similar question