2015-04-08 26 views
0

所以基本上我正在構建一個角度/離子應用程序,這是基於位置的,基本上每個功能都需要用戶的地理位置。我試圖圍繞提供從用戶到表單,控制器等位置數據我的頭。我知道獲取用戶的loc的調用如下(這是一個回調)。如何在Angular JS中傳遞地理位置數據?

Navigator.geolocation.watchPosition(function (pos) { 
     var latLng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude); 
    }, function (error) { 
     alert('Unable to get location: ' + error.message); 
    }); 

基本上我該如何傳遞這個用戶位置的結果並將它用於各種其他功能?我是否需要在每個需要用戶位置的地方複製此代碼段(「注意它處於手錶模式以檢測更改」)

非常感謝。

回答

0

您應該將該代碼放入服務或工廠,然後根據需要將其注入到控制器中。

0

創建一個工廠,並承諾解決latLng。

.factory('Local', ['$q', function($q){ 
    return {getLocation: function(options){ 
    var q = $q.defer(); 
    navigator.geolocation.watchPosition(function (pos) { 
    var latLng = new google.maps.LatLng(pos.coords.latitude, pos.coords.longitude); 
    q.resolve(latLng); 
}, function (error) { 
    q.reject(error) 
}, options); 
    return q.promise; 
    } 

} 
}]) 

然後,您可以將工廠注入到任何需要它的地方。

相關問題